我必须将图像从浏览器上传到我的 RESTful Web API,使用 Python Eve 实现。从文档中,它需要发送 multipart/data-form 请求。(http://python-eve.org/features.html#file-storage)。有 'dart:http' 库可以做到。但是,它需要 'dart:io',这在浏览器上不可用。那么,无论如何我可以从浏览器发送请求吗?
感谢您的任何帮助。
我必须将图像从浏览器上传到我的 RESTful Web API,使用 Python Eve 实现。从文档中,它需要发送 multipart/data-form 请求。(http://python-eve.org/features.html#file-storage)。有 'dart:http' 库可以做到。但是,它需要 'dart:io',这在浏览器上不可用。那么,无论如何我可以从浏览器发送请求吗?
感谢您的任何帮助。
你可以使用这样的东西:
FormData formData = new FormData();
formData.append('image', '...');
HttpRequest.request('url', method: 'post', sendData: formData).then((HttpRequest request) {
// ...
});
这应该设置正确的 mimeType。如果没有,您可以使用 mimeType 参数进行设置。
问候,罗伯特
客户端,dart:html
图书馆应该做的伎俩。像这样的东西(来源):
import 'dart:html';
main() {
InputElement uploadInput = query('#upload');
uploadInput.on.change.add((e) {
// read file content as dataURL
final files = uploadInput.files;
if (files.length == 1) {
final file = files[0];
final reader = new FileReader();
reader.on.load.add((e) {
sendDatas(reader.result);
});
reader.readAsDataURL(file);
}
});
}
/// send data to server
sendDatas(dynamic data) {
final req = new HttpRequest();
req.on.readyStateChange.add((Event e) {
if (req.readyState == HttpRequest.DONE &&
(req.status == 200 || req.status == 0)) {
window.alert("upload complete");
}
});
req.open("POST", "http://127.0.0.1:8080/upload");
req.send(data);
}