dart - 如何在Dart/AngularDart中进行多部分发布

标签 dart angular-dart

我有一个REST api,它在post方法中假设一个multipartfile。

有什么方法可以在Dart / AngularDart中进行此类发布,因为到目前为止我发现的所有解决方案都无法正常工作。

我曾尝试使用http://dart-gde.github.io/dart-google-oauth2-library/multipart_file/MultipartFile.html解决方案,但由于它不支持dart.io,因此无法在浏览器中使用。

我的问题是直接来自浏览器的客户端部分。用Java编写的服务器端可以处理该帖子。

最佳答案

如果您需要分段上传文件,则要做的就是使用FormData类发送HttpRequest对象。例:

import "dart:html";

...

var fileData; //file data to be uploaded

var formData = new FormData();
formData.append("field", "value"); //normal form field
formData.appendBlob("data", fileData); //binary data

HttpRequest.request("/service-url", method: "POST", sendData: formData).then((req) {
  ...
});

此外,如果需要允许用户从其硬盘上载文件,则必须使用带有<input type="file">标记的html表单。例:

HTML文件:

<form id="myForm" action="/service-url" method="POST" enctype="multipart/form-data">
  <input type="text" name="field"> <!-- normal field -->
  <input type="file" name="fileData"> <!-- file field -->
</form>

Dart 文件:

var formData = new FormData(querySelector("#myForm"));
HttpRequest.request("/service-url", method: "POST", sendData: formData).then((req) {
  ...
});

关于dart - 如何在Dart/AngularDart中进行多部分发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26279968/

相关文章:

dart - AngularDart英雄之旅教程抛出错误 'Hero'不是函数吗?

angular - ng如果无法立即使用(Angular Dart)

android - 如何从 dart/flutter 将 int/integer 值作为 json 发布

objective-c - Android Studio 中现有 Flutter 项目中 Swift 或 Objective-C 的原生语言设置在哪里?

Dart SassBuilder 找不到 Logger

Dart Angular 2 和 Material Design 组件

dart - 路由:无需重新加载 View 即可获得有关参数更新的通知

firebase - 仅获取 FireBase 集合中 ID 与单独集合中的文档匹配的文档

android - 展开标题时如何更改展开标题颜色?

flutter - 如何在屏幕之间传递数据?