当前位置: 首页 > 知识库问答 >
问题:

如何上传图片到Flutter服务器?

佴保臣
2023-03-14

我想上传一张图片,我正在使用http。客户端()用于发出请求,

static uploadImage(String id, File file) {
  var httpClient = createHttpClient();

  Map<String, String> headers = new Map<String, String>();
  headers.putIfAbsent("Authorization", () => "---");
  headers.putIfAbsent("Content-Type", () => "application/json");

  var body=new List();
  body.add(id.)
  httpClient.post(URL_UPLOADIMAGE,headers: headers,body: ,encoding: )
}

请求的主体和编码部分应该是什么?

共有3个答案

康言
2023-03-14

submitForm()方法中签出主体。

File _image;

Future cameraImage() async {
  var image = await ImagePicker.pickImage(
    source: ImageSource.camera,
    maxHeight: 240.0,
    maxWidth: 240.0,
  );

  setState(() {
    _image = image;
  });
}

submitForm() async {
  final response = await http.post(
    uri,
    headers: {
      AuthUtils.AUTH_HEADER: _authToken
    },
    body: {
      'user_id': userId
      'photo': _image != null ? 'data:image/png;base64,' +
          base64Encode(_image.readAsBytesSync()) : '',
    },
  );

  final responseJson = json.decode(response.body);

  print(responseJson);
}
吴欣悦
2023-03-14

最简单的方法是使用http库,

import 'dart:io';
import 'package:http/http.dart' as http;

_asyncFileUpload(String text, File file) async{
   //create multipart request for POST or PATCH method
   var request = http.MultipartRequest("POST", Uri.parse("<url>"));
   //add text fields
   request.fields["text_field"] = text;
   //create multipart using filepath, string or bytes
   var pic = await http.MultipartFile.fromPath("file_field", file.path);
   //add multipart to request
   request.files.add(pic);
   var response = await request.send();

   //Get the response from the server
   var responseData = await response.stream.toBytes();
   var responseString = String.fromCharCodes(responseData);
   print(responseString);
}
司空坚
2023-03-14

使用MultipartRequest类

Upload(File imageFile) async {    
    var stream = new http.ByteStream(DelegatingStream.typed(imageFile.openRead()));
      var length = await imageFile.length();

      var uri = Uri.parse(uploadURL);

     var request = new http.MultipartRequest("POST", uri);
      var multipartFile = new http.MultipartFile('file', stream, length,
          filename: basename(imageFile.path));
          //contentType: new MediaType('image', 'png'));

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

名称空间:

import 'package:path/path.dart';
import 'package:async/async.dart';
import 'dart:io';
import 'package:http/http.dart' as http;
 类似资料:
  • 我在尝试将swift中的图像上载到PHP服务器时遇到问题。在php处理文件之前,一切看起来都很好。在那一刻,我得到了错误。 swft代码的相关部分是: php是 最后,我得到的错误是: ******响应数据= 上载失败

  • 问题内容: 我正在尝试从Android设备将文件上传到php服务器。有相同问题的话题,但他使用的是不同的方法。我的Android辅助代码运行正常,并且未显示任何错误消息,但服务器未收到任何文件。这是我的示例代码,我在网上找到了。 和我的PHP服务器端代码如下 Apache正在运行。当我运行服务器时,出现此错误消息。上传文件时出错,请重试!我已经在eclipse中检查了日志数据,我认为是套接字问题,

  • 本文向大家介绍PHP实现上传图片到 zimg 服务器,包括了PHP实现上传图片到 zimg 服务器的使用技巧和注意事项,需要的朋友参考一下 最近我们项目需要一台图片服务器存储用户头像,我们使用 zimg 处理和存储图片,下面简单介绍一下如何使用 PHP 上传图片到 zimg,并获取相应图片的返回信息 使用 curl 库实现上传 根据 zimg 使用文档,我们想要让 zimg 返回 json 信息,

  • 我正在尝试从Gallery上传所选图像到dropbox。我被贴了好几天,因为我无法恢复运行时异常 我的onActivityResult()是 uploadDropbox正文为: private AccessTokenPair getStoredKeys(){//TODO自动生成的方法存根 } private void storeKeys(String key,String secret){//TO

  • 本文向大家介绍webuploader实现上传图片到服务器功能,包括了webuploader实现上传图片到服务器功能的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了webuploader实现上传图片到服务器的具体代码,供大家参考,具体内容如下 效果图: 一、引入资源文件 1.1 引入webuploader.css文件 1.2 引入webuploader.min.js文件 二、HTML代码

  • 本文向大家介绍Java上传文件图片到服务器的方法,包括了Java上传文件图片到服务器的方法的使用技巧和注意事项,需要的朋友参考一下 这里我记录一个比较简单方便操作的JAVA上传文件图片到服务器并且保存,具体内容如下 首先是页面html的   我这是提交一个文件和类型 预览图片js 之后就是后台得到 好了现在重点就是看Upload 这个类了 这个类基本是封装好了的,需要 加的东西可以自己取看看然后修