flutter web 通过XmlHttpRequest对象实现文件上传
目前网络上很多flutter上传文件的方法只支持IO版本,不支持网页版,以下通过使用dart:html包中的FileUploadInputElement和HttpRequest对象实现文件上传功能。首先,在页面上添加一个觖发器,比如按钮```FlatButton.icon(label:Text("导入文件"),icon:Icon(Icons.import_export),onPressed:(){
目前网络上很多flutter上传文件的方法只支持IO版本,不支持网页版,以下通过使用dart:html包中的FileUploadInputElement和HttpRequest对象实现文件上传功能。
首先,在页面上添加一个觖发器,比如按钮
```
FlatButton.icon(
label: Text("导入文件"),
icon: Icon(Icons.import_export),
onPressed: () {
upload("/upload");
})
```
然后,编写上传代码
```
import 'dart:html' as html;
Future<void> upload(String uri) async {
InputElement uploadInput = FileUploadInputElement();
uploadInput.click();
uploadInput.onChange.listen((e) {
final files = uploadInput.files;
var formData = html.FormData();
formData.appendBlob("filename", files[0].slice(), files[0].name);
var req = html.HttpRequest();
req.open("POST", uri);
req.send(formData);
req.onLoadEnd.listen((e) {
window.alert(req.responseText);
});
});
}
```
结束!
更多推荐
所有评论(0)