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

Dio-Flutter图像上传返回Socket异常

蔚元明
2023-03-14

我尝试过使用Dio插件支持的formData上传图像。

FormData formData = new FormData.from(
        {"profile_image": UploadFileInfo(image, "profile_image.jpg")});
    var response = await _dio.post(ApiConfiguration.getUploadImageUrl().toString(),data: formData);

但它的返回错误。

DioError [DioErrorType.DEFAULT]: SocketException: OS Error: Connection reset by peer, errno = 54, address = 3.122.199.93, port = 62181

任何帮助都将不胜感激。

共有2个答案

祁建明
2023-03-14

在该应用的发布版本中,面对类似的情况,Dio未能上传图像。这可能是由于两个原因,一个是上面提到的,您正在v3中使用不推荐的方法,或者您可以尝试将此权限添加到清单中

添加此权限

<代码>

到您的应用程序级清单。

android/app/src/main/AndroidManifest.xml

可以在这里找到解决方案

https://stackoverflow.com/a/59392036/14641365

虽然另一种方法是将图像上传到我使用的服务器上,但如下所示

String url = "YOUR_URL_TO_UPLOAD";
FormData formData = FormData.fromMap({
"QUERY_PARAM_NAME": await MultipartFile.fromFile("IMAGE_PATH", filename:"TESTING.jpg"),
});
var response = await dio.post(url, data: formData);
柳项明
2023-03-14

上传FileInfo和FormData。从v3中弃用的。文件需要更清楚和更新。我为此浪费了一天的大部分时间。

我使用dio以这种方式发布文件路径和一些其他信息:

 Dio dio = new Dio();
  FormData formData = new FormData();
  formData.add(
    "apiKey",
    "my_api_key",
  );
  formData.add(
    "file",
    "image_path",
  );
  Response response = await dio.post(
    "https://localhost",
    data: formData,
    onSendProgress: (int sent, int total) {
      // do something
    },
  ).catchError((onError) {
    throw Exception('something');
  });
 类似资料:
  • 我从Firebase存储中获取图像,用相机拍照,或者从图书馆中挑选一张。当其中一个完成时,我有一个类来存储,以便在需要时使用它。 现在我需要将此图像上传到Firebase存储(修改或新建,无所谓)。Firebase允许我使用以下选项之一:或,每个选项分别需要或。 我怎么能把我的,并从它获得一个或用于上传? -- 或者,为了解决这个问题,当我从Firebase存储中检索图像时,如何获取图像的? 无论

  • 我试图上传一个图像文件,我得到了使用Imagepicker。 但上面的代码返回以下错误 VERBOSE-2:ui\u dart\u状态。cc(186)]未处理的异常:MissingPluginException(未找到方法任务的实现#通道插件上的startPutFile.flatter.io/firebase_存储)#0 MethodChannel_invokeMethod包:flatter/..

  • 我试图用ServletContext返回一个图像,但出现500个错误,控制台显示: java.lang.NullPointerException: null at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2146) 在 org.apache.commons.io.io.ioUtils.copy(IOUtils.java:2102)

  • 我正在使用CKEditor 4.5。2和CKFinder 3.0。PHP5.6上的0。一般来说,集成工作正常-当我单击CKEditor图像按钮时,我可以单击“浏览服务器”按钮,CKFinder打开,我可以选择图像,也可以进行上传。 不起作用的是image2对话框中的“上载”选项卡。我总是收到一个错误,说“请求的资源类型无效。”当我点击“发送到服务器”按钮时。 在我的CKFinder配置中,我定义了

  • 我有以下代码: 美元这个- 没有出现警告/错误,提交成功,但我上传的图像不会显示在文件夹中/uploads/user/“我不知道为什么,我不知道如何检查我的上传路径是否正确。我希望有一些方向。但我确实用相同的代码从不同的函数上传了它的工作和图像显示。 我目前使用localhost。 表格如下: