Flutter:使用二进制正文上传图像

时间:2019-05-20 08:06:59

标签: dart flutter upload binary

我想使用二进制主体上传文件,如屏幕截图所示:

screenshot

到目前为止,我只有:

      save() async {
         http.put(url,headers:headers, body: );

2 个答案:

答案 0 :(得分:1)

body方法的put参数接受List<int>,它将用作字节列表

http API参考:https://pub.dev/documentation/http/latest/http/put.html

  

body设置请求的主体。它可以是字符串,列表或   一张地图。如果是字符串,则使用编码进行编码   并用作请求的正文。请求的内容类型   将默认为“文本/纯文本”。

     

如果body是一个List,则用作body的字节列表。   请求。

     

如果body是Map,则使用编码将其编码为表单字段。的   请求的内容类型将设置为   “应用程序/ x-www-form-urlencoded”;这不能被覆盖。

发送文件的示例:

main() async {
  await put(url, body: File('the_file').readAsBytesSync());
}

答案 1 :(得分:1)

您可以将其用于上传图片

Future uploadImage(File imageFile)async{
  var stream= new http.ByteStream(DelegatingStream.typed(imageFile.openRead()));
  var length= await imageFile.length();
  var uri = Uri.parse("Image upload url");
  var request = new http.MultipartRequest("POST", uri);
  var filename = "Your image name";
  var multipartFile = new http.MultipartFile("image", stream, length, filename: basename(filename));
  request.files.add(multipartFile);
  var response = await request.send();
  if(response.statusCode==200){
    print("Image Uploaded");
  }else{
    print("Upload Failed");
 }
}