如何解决在Flutter中使用dio上传多部分图像文件的问题
我使用 Dio 框架将图像上传到Flutter应用程序中的服务器。 Dio版本3.0.9。 发布方法。 添加了4个标题 使用图像和其他字段创建表单数据。
我分析了更多的方法。就像将Dio降级为 2.3.1 一样,可以使用 UploadFileInfo 方法。没有成功。然后使用 multipartfileupload 。最后一个。
Future<bool> createStoreWithDio() async {
Map<String,String> headers = {
"Accept": "application/json","authorization": tokenString,"authtype": "admin","Content-Type": "multipart/form-data"
};
try {
FormData formData = new FormData.fromMap({
"logo": await http.MultipartFile.fromPath("logo",imageFile.path,contentType: new MediaType('image','png')),"name": " Bala ios","description": "_description","website": "www.website.com","password": "Test password","user_name": "Test userInformationName","mobile": "9988776655","email": "test@techit.io",});
print(formData.fields);
Response response = await dio
.post(
"API",data: formData,options: Options(
headers: headers,),)
.then((value) {
print(value.toString());
});
print(response.toString());
} catch (error) {
print(error);
}
}
imageFile 是我从相机/图库中捕获的文件。
我得到 500 例外。任何帮助都会有帮助
解决方法
我不确定是什么原因造成的,此代码是否在我根据您的代码进行了更改的应用程序中使用,但是我没有发送任何标头,因此您需要添加然后尝试使用此代码,让我知道它适用您。还要确保您拥有文件imageFile.path
,并且您的api网址正确无误
确保已导入
`'import package:http_parser/http_parser.dart';
import 'package:mime/mime.dart';`
Dio dio = new Dio();
final mimeTypeData =
lookupMimeType(imageFile.path,headerBytes: [0xFF,0xD8]).split('/');
FormData formData = FormData.fromMap({
"name": " Bala ios","description": "_description","website": "www.website.com","password": "Test password","user_name": "Test userInformationName","mobile": "9988776655","email": "test@techit.io","logo": await MultipartFile.fromFile(imageFile.path,contentType: MediaType(mimeTypeData[0],mimeTypeData[1])),});
var response = await dio.post(
Urls.ImageInsert,data: formData,);
var message = response.data['message'];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。