如何使用Flutter发送多部分文件



我想将图片作为多部分文件发送到服务器。

首先,我尝试使用http.post:

var response = await http.post(
Uri.parse('url.php'),
headers:{ "Content-Type":"multipart/form-data" } ,
body: {
"fichier": base64img
}
);

我得到了这个错误:

错误状态:无法设置内容类型为的请求的正文字段"多部分/形式数据";。

查看此主题的答案,我尝试使用dio包:

var dio = Dio();
var formData = FormData.fromMap({
'fichier': await MultipartFile.fromFile(filePath, filename: 'upload')
});
var response = await dio.post(
'url.php', 
data: formData
);

我得到了这个错误:

错误:不支持的操作:只有在dart:io可用。

此处已打开一个问题。

最后,我尝试使用http包:中的MultipartRequest

var url = Uri.parse('url.php');
var request = new http.MultipartRequest("POST", url);
request.files.add(
await http.MultipartFile.fromPath(
"fichier", 
filePath
)
);
request.send().then((response) => print(response));

得到了与dio包完全相同的错误。

如果有人作为解决方案,我很乐意接受。

使用http包并使用fromBytesfromPath:获取图像

final uri = Uri.parse('https://myendpoint.com');
var request = new http.MultipartRequest('POST', uri);
final httpImage = http.MultipartFile.fromBytes('files.myimage', bytes,
contentType: MediaType.parse(mimeType), filename: 'myImage.png');
request.files.add(httpImage);
final response = await request.send();

相关内容

  • 没有找到相关文章

最新更新