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

在服务器上上传的多像素图像无法正常工作颤动

劳韬
2023-03-14

我试图上传多张图片到服务器,但总是出现问题。我也尝试了一些其他的解决方案,但是没有效果。

saveImages() async {
    // string to uri
    Uri uri = Uri.parse('http://100.0.50.10:8000/API/AddImageCarSale/Post');

// create multipart request
    MultipartRequest request = http.MultipartRequest("POST", uri);
    if (images != null) {
      for (var i = 0; i < images.length; i++) {
        ByteData byteData = await images[i].getByteData();
        List<int> imageData = byteData.buffer.asUint8List();

        MultipartFile multipartFile = MultipartFile.fromBytes(
          'photo', //key of the api
          imageData,
          filename: images[i].name,
          contentType: MediaType("image",
              "jpg"), //this is not nessessory variable. if this getting error, erase the line.
        );
        request.fields['PhoneNo'] = '1122';
        request.fields['VehicleNo'] = '1234';
// add file to multipart
        request.files.add(multipartFile);
// send
        var response = await request.send();
      }
    }
  }

我的错误是

[错误:颤动/库/html" target="_blank">用户界面/ui_dart_state抄送(166)]未处理的异常:状态错误:无法完成最终确定的请求。E/扑动 (11521): #0 基础请求 (base_request 11521): #11521: #1 多部分请求完成 base_request (multipart_request 包: 11521): #0 E/颤动 (11521): #2 IOCLIENT.发送 (io_client 包: 11521) E/颤动 (11521): #4 _SellerFormState.savedNew (包:自动记录/页面/购买销售/卖家形式 dart:361:38) E/扑动 (11521): E/颤动 (11521): #5 _SellerFormState.(包装:自动日志/页面/购买销售/卖家形式:754:25)E/颤动 (11521): #6 _InkResponseState._手柄咔嗒声 (包装:颤动/src/材料/ink_well飞镖:992:19) E/颤动 (11521): #7 _InkResponseState.build.(包装:颤振/材料/ink_well飞镖:1098:38)E/扑动 (11521): #8 手势识别器.invokeCallback (包装:颤动/src/手势/识别器飞镖:184:24) E/颤动 (11521): #9 点击手势识别器.handleTapUp (包装:颤动/src/手势/点击飞镖:524:11) E/颤动 (11521): #10 BaseTapGestureRecognizer._checkUp (包装:颤动/src/手势/点击飞镖:284:5) E/颤动 (11521): #11 BaseTapGesgesrecons.接受手势 (包装:颤动/src/手势/点击飞镖:256:7) E/颤动 (11521): #12 手势包装:颤动/src/手势/竞技场飞镖:158:27) E/颤动 (11521): #13 手势绑定事件 (包装:颤动/src/手势/绑定飞镖:224:20) E/颤动 (11521): #14 手势绑定.调度事件 (包装:颤动/src/手势/绑定飞镖:200:22) E/颤动 (11521): #15 GestureBinding._handlePointerEvent (包装:颤动/src/手势/绑定飞镖:158:7) E/颤动 (11521): #11521): #16 GestureBinding._flushPointerEventQueue (包装:扑动/src/手势/绑定.dart:104:7E/扑动 (11521): #17 GestureBinding._handlePointerDataPacket (包装:颤动/src/手势/绑定飞镖:88:7) E/扑动 (11521): #18 _rootRunUnary (飞镖:异步/区域飞镖:1206:13) E/扑动 (11521): #11521): #19 _CustomZone.runUnary (飞镖:异步/区域飞镖:1100:19) E/扑动 (11521): #20 _CustomZone.runUnaryGuarded (飞镖:异步/区域飞镖:1005:7) E/扑动 (11521): #21 _invoke1 (飞镖:ui/钩子.dart:267:10) E/扑动 (11521): #22 _dispatchPointerDataPacket (飞镖:ui/钩子飞镖:176:5) E/颤动 (11521):

共有1个答案

蒋无尘
2023-03-14

当多部分请求最终确定时,您需要为每个循环创建一个新的多部分请求。尝试此修改,它应该可以工作。

    // string to uri
    Uri uri = Uri.parse('http://100.0.50.10:8000/API/AddImageCarSale/Post');

// create multipart request
    if (images != null) {
      for (var i = 0; i < images.length; i++) {
        MultipartRequest request = http.MultipartRequest("POST", uri);
        ByteData byteData = await images[i].getByteData();
        List<int> imageData = byteData.buffer.asUint8List();

        MultipartFile multipartFile = MultipartFile.fromBytes(
          'photo', //key of the api
          imageData,
          filename: images[i].name,
          contentType: MediaType("image",
              "jpg"), //this is not nessessory variable. if this getting error, erase the line.
        );
        request.fields['PhoneNo'] = '1122';
        request.fields['VehicleNo'] = '1234';
// add file to multipart
        request.files.add(multipartFile);
// send
        var response = await request.send();
      }
    }
  }
 类似资料:
  • 我正在尝试创建一个简单的照片库,其中一张照片是大的,也有拇指在底部,当点击成为那张大照片。画廊在单独的模式窗口。我的代码只在第一个模态窗口中工作。事实上,这是我第一次使用jQuery。我甚至找不到如何使用console.log来检查问题出在哪里。 HTML: jQuery:

  • 经过一些研究,我发现了一个用于多部分文件上传的开放库。在我的情况下,我想上传一个图像使用PUT请求,其中的图像要么是从画廊或相机选择。以下是我正在使用的资源:1。https://github.com/gotev/android-upload-service2.https://www.simplifiedcoding.net/android-upload-image-to-server/#comme

  • 问题内容: 我正在使用codeigniter 3.1。我想使用ajax发布上传数据。 Ajax上传文件不起作用。但是,当我发布不带ajax的简单表单时,它工作正常。 我不知道为什么,但控制台没有错误。 的HTML JAVASCRIPT 控制器 问题答案: 问题之一是文件上传使用的机制与其他表单类型不同。这就是为什么没有为您完成工作的原因。其他答案建议使用javascript,而这个答案也可以。 的

  • 问题内容: 我正在设置标头和正文,使用Post提取将图像上传到服务器上。我得到的响应码是200,但它不是上传图像,而是其余数据正在上传。 这是正文的代码: 请帮助。我正在犯什么错误。:( 问题答案: 我找到了解决方案: **文件名是可选的…

  • 当我上传图片时,我收到以下错误: 警告:move _ uploaded _ file(/images/profile 767 abb feae 82141 . jpg)[function . move-uploaded-file]:无法打开流:第5行的/Applications/XAMPP/xamppfiles/htdocs/core/functions/users . PHP中没有这样的文件或目

  • 问题内容: 我想随请求一起发送图像作为参数。我使用下面的代码调用POST请求,但是我不知道如何将图像追加到正文中。 我通过图像选择器获取图像,如下所示: 我的要求如下 我是Swift的新手。我已经通过multipart / form-data看到了这一点,但无法自己实现。我不想将其编码为基本64格式。请帮助我。 问题答案: 我使用以下结构发送图像: 然后在函数中创建如下主体: