我有一个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/