【问题标题】:post image to server using http post multipart/form-data request [flutter-web]使用 http post multipart/form-data 请求将图像发布到服务器 [flutter-web]
【发布时间】:2020-11-18 18:53:06
【问题描述】:

我正在尝试使用 http 包将图像上传到服务器, 这是邮递员的截图 到目前为止,我一直在关注这个链接https://rodolfohernan20.blogspot.com/2019/12/upload-files-to-server-with-flutter-web.html 这是发送图像的部分代码

var url = Uri.parse("http:xxxxxxx");
    var request = new http.MultipartRequest("POST", url);
    request.headers.addAll(headers);
    request.fields['user_id'] = '1';
    request.fields['_method'] = 'put';
    request.files.add(await http.MultipartFile.fromBytes(
        'file', _imageFile,
        contentType: new MediaType('application', 'octet-stream'),
        filename: "example"));

    request.send().then((response) {
      print(response.statusCode);
      if (response.statusCode == 200) print("sent");
    });

imageFile 是 int(List<int>) 的列表,其中imageFile=Base64Decoder().convert(result.toString().split(",").last); 我得到的响应总是响应状态= 400,有没有办法解决这个问题?

【问题讨论】:

    标签: image flutter http-post


    【解决方案1】:

    你可以试试这个方法:

    //URL
    String baseUrl = "https:xxxxx";
    
    var request = http.MultipartRequest('POST', Uri.parse(baseUrl));
    request.headers.addAll(headers);
    
    request.files.add(
      http.MultipartFile(
        'file',
         File(_imageFile.path).readAsBytes().asStream(),
         File(_imageFile.path).lengthSync(),
         filename: _imageFile.path.split("/").last,
       ),
    );
    
    // Other fields
    request.fields['user_id'] = '1';
    request.fields['_method'] = 'put';
    
    var response = await request.send();
    
    if (response.statusCode == 200) {
       // do something...
    } else {
       // do something...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      • 2019-06-19
      • 2019-01-06
      • 1970-01-01
      • 2010-11-25
      • 1970-01-01
      相关资源
      最近更新 更多