api - 如何使用 HTTP 将多张图片上传到 Flutter 中的 Rest API?

标签 api flutter dart multipartform-data imagepicker

我想将多张图片上传到 Rest API。我尝试了下面的代码将单个图像上传到 rest API。 工作正常,对于多图像选择,我正在使用 multi_image_picker link ,如何修改以下代码以上传多张图片?谢谢

Future<String> uploadSingleImage(File file,String userid) async
  {

    final prefs = await SharedPreferences.getInstance();
    final key = 'token';
    final value = prefs.get(key ) ?? 0;

    String fileName = file.path.split("/").last;
    var stream =
    new http.ByteStream(DelegatingStream.typed(file.openRead()));

    // get file length

    var length = await file.length(); //imageFile is your image file
    Map<String, String> headers = {
      "Accept": "application/json",
      "Authorization": "Bearer $value"
    }; // ignore this headers if there is no authentication

    // string to uri
    var uri = Uri.parse(serverUrl + "/api/v1/upload_parent_image");

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

    // multipart that takes file
    var multipartFileSign = new http.MultipartFile('photo',
        stream,
        length,
        filename: fileName
    );

    // add file to multipart
    request.files.add(multipartFileSign);

    //add headers
    request.headers.addAll(headers);

    //adding params
    request.fields['id'] = userid;
   // request.fields['firstName'] = 'abc';
    // request.fields['lastName'] = 'efg';

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

    print(response.statusCode);

    // listen for response
    response.stream.transform(utf8.decoder).listen((value) {
      print(value);
    });
  }

最佳答案

你的图片列表

List<String> photos = ["path of image1","path of image2", "path of image3",];



 List<http.MultipartFile> newList = [];

      for (var img in photos!) {
        if (img != "") {
          var multipartFile = await http.MultipartFile.fromPath(
            'Photos',
            File(img).path,
            filename: img.split('/').last,
          );
          newList.add(multipartFile);
        }
      }
request.files.addAll(newList);

关于api - 如何使用 HTTP 将多张图片上传到 Flutter 中的 Rest API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60890771/

相关文章:

flutter - 没有为类型 '[]' 定义运算符 'DocumentSnapshot'

flutter - Flutter:从上一个屏幕上的特定卡导航时动态更改AppBar标题

python - 静音 Yum API 输出

php - 我应该如何获取 Drupal 7 自定义节点的特定字段中包含的值?

android - 使用google_maps_autocomplete后Flutter无法运行

flutter_bloc : Make initialState method async

flutter - Flutter应用程式中的 list 无法回应触控事件

dart - 如何在Dart中从元数据中获取值(value)?

powershell - cURL 命令在 git bash 中有效,但在 cmd 和 powershell 中无效

javascript - 类型错误:mitsukuApi.send 不是函数