我试图上传上传多个图像到休息API的Flutter。我写的代码如下所示:
final List<File> _image = [];
Future<Future<bool?>?> uploadImage(filePath, url) async {
if (_image.length > 0) {
for (var i = 0; i < _image.length; i++) {
print(_image.length);
var request =
http.MultipartRequest('POST', Uri.parse(url + _scanQrCode));
print(Uri.parse(url + _scanQrCode));
request.files.add(http.MultipartFile.fromBytes(
'picture',
File(_image[i].path).readAsBytesSync(),
filename: _image[i].path.split("/").last
));
var res = await request.send();
var responseData = await res.stream.toBytes();
var result = String.fromCharCodes(responseData);
print(_image[i].path);
}
_submitedSuccessfully(context);
}else{
return Fluttertoast.showToast(
msg: "Please Select atleast one image",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIosWeb: 1,
backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 16.0
);
}
}
代码不工作,图像不被上传。请任何人帮助我解决这个问题
6条答案
按热度按时间gt0wga4j1#
首先创建to变量
当你从图库中选取图像时调用这个方法
当你按下按钮发送图像到服务器时这个调用
11dmarpk2#
此方法可以简单地帮助上传多个图像
g52tjvyc3#
将您的代码更改为:
klh5stk14#
此软件包使您的工作更加轻松,flutter_uploader:
rryofs0p5#
您可以在此使用
request.files.addAll
作为示例:sq1bmfud6#
我遇到了同样的问题,我使用了大多数答案中提到的技术,但它一直只发送我上传的一张图片,而不是发送所有图片。所以我所做的很简单。就像HTML字段一样,我使用了一个数组字段名。请看下面的代码:
解释:我遍历了一个Getx文件列表(XFile)并且我使用了http的MultipartFile类的fromPath构造函数来填充我的临时空列表photos。我所做的与其他答案不同的是作为fromPath构造函数的第一个参数,我使用了一个数组变量photos[ ],而不是简单的变量photos。如果有问题的话,我的API是用Laravel制作的。希望这对你有帮助。