gpt4 book ai didi

flutter - 未处理的异常 : Content size below specified contentLength. 已写入 206 字节但预期为 375482。#228

转载 作者:IT王子 更新时间:2023-10-29 07:15:04 29 4
gpt4 key购买 nike

我正在尝试使用 multi_image_picker 上传多个文件使用下面的代码,但我收到标题中的错误。我正在关注 document 中的代码但我不确定我的做法是否正确。提前致谢

Future<void> sendDataToServer() async {
// string to uri
Uri uri = Uri.parse(Settings.SERVER_URL + 'api/uploadproduct');

// create multipart request
MultipartRequest request = http.MultipartRequest("POST", uri);

request.fields['name'] = productName;

List.generate(images.length, (index) async {
Asset asset = images[index];

ByteData byteData = await asset.getByteData();
List<int> imageData = byteData.buffer.asUint8List();

MultipartFile multipartFile = MultipartFile.fromBytes(
'photos',
imageData,
filename: 'some-file-name.jpg',
contentType: MediaType("image", "jpg"),
);

// add file to multipart
request.files.add(multipartFile);
});

// send
var response = await request.send();
}

更新和解决方案

感谢@Richard Heap 的回答,我找到了一个解决方案,我在这里添加了解决方案,因为他的回答不是完整的解决方案:

Future<void> sendDataToServer() async {
// string to uri
Uri uri = Uri.parse(Settings.SERVER_URL + 'api/uploadproduct');

// create multipart request
MultipartRequest request = http.MultipartRequest("POST", uri);

request.fields['name'] = productName;

for (var asset in images) { {
Asset asset = images[index];

ByteData byteData = await asset.getByteData();
List<int> imageData = byteData.buffer.asUint8List();

MultipartFile multipartFile = MultipartFile.fromBytes(
'photos[]', //this [] little change was needed to make it work
imageData,
filename: 'some-file-name.jpg',
contentType: MediaType("image", "jpg"),
);

// add file to multipart
request.files.add(multipartFile);
};

// send
var response = await request.send();
}

最佳答案

List.generate 更改为:

  var i = 0;
for (var asset in images) {
i++;
var multipartFile = MultipartFile.fromBytes(
'photo$i',
(await asset.getByteData()).buffer.asUint8List(),
filename: 'photo$i.jpg', // use the real name if available, or omit
contentType: MediaType('image', 'jpg'),
);

request.files.add(multipartFile);
}

这将产生带编号的参数 photo1photo2

您附加 [] 的技巧可能只适用于基于 PHP 的服务器,该服务器将后缀理解为一组名为 photos 的参数。单独编号的方法更通用。

关于flutter - 未处理的异常 : Content size below specified contentLength. 已写入 206 字节但预期为 375482。#228,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57632472/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com