【问题标题】:Flutter multipart request along name value pair to server沿着名称值对向服务器发送多部分请求
【发布时间】:2019-05-19 04:12:18
【问题描述】:

我必须将多部分请求连同名称值对一起发送到服务器,我的意思是 id 连同它。你能帮我如何发送 id 和多部分文件吗?

Upload() async {
  var stream = new https.ByteStream(DelegatingStream.typed(Files[0].openRead()));
  var length = await Files[0].length();


  var stream1 = new https.ByteStream(DelegatingStream.typed(Files[1].openRead()));
  var length1 = await Files[1].length();

  var stream2 = new https.ByteStream(DelegatingStream.typed(Files[2].openRead()));
  var length2 = await Files[2].length();



  var uri = Uri.parse(openurl);

  var request = new https.MultipartRequest("POST", uri);
  var multipartFile1 = new https.MultipartFile('XX', stream, length,
      filename: basename(Files[0].path));
  var multipartFile2 = new https.MultipartFile('YY', stream1, length1,
      filename: basename(Files[0].path));

  var multipartFile3 = new https.MultipartFile('ZZ', stream2, length2,
      filename: basename(Files[0].path));



  //contentType: new MediaType('image', 'png'));

  request.files.add(multipartFile1);
  request.files.add(multipartFile2);
  request.files.add(multipartFile3);
  request.fields.addAll(other)

  var response = await request.send();
  print(response.statusCode);
  response.stream.transform(utf8.decoder).listen((value) {
    print(value);
  });
}

提前致谢

萨蒂什

【问题讨论】:

  • 对于 HTTP 请求,我建议使用 Dio library。它将帮助您避免标准网络库的限制。

标签: dart flutter multipart


【解决方案1】:

我刚刚遇到了类似的问题。我必须沿着键值对上传图像。我意识到我可以使用 request.fields 上传键值对:

var request = new http.MultipartRequest("POST", uri);

request.fields['description'] = 'description';
request.fields['File-Name'] = 'FILENAME.jpg';
request.fields['qr_size'] = '3';

【讨论】:

    猜你喜欢
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 2013-11-10
    • 2017-05-04
    • 2012-12-20
    相关资源
    最近更新 更多