我正在尝试Dart,但我无法弄清楚,如何将图像从用户发送到服务器.我有我的输入标签,我可以在DART代码中达到此目的,但我似乎无法从中读取.我想尝试类似的东西:
InputElement ie = document.query('#myinputelement');
ie.on.change.add((event){<br/>
InputElement iee = document.query('#myinputelement');<br/>
FileList mfl = iee.files;<br/>
File myFile = mlf.item(0);<br/>
FileReader fr = new FileReader();
fr.readAsBinaryString(myFile);
String result = fr.result; //this is always empty
});
Run Code Online (Sandbox Code Playgroud)
使用html包含:
<input type="file" id="myinputelement">
Run Code Online (Sandbox Code Playgroud)
我真的希望你不能帮助我,我有点卡住了.我可能只是想知道如何为文件读取器执行onload,或者我可能完全错误.
Lar*_*ann 12
该的FileReader所以你需要使用事件处理程序的API是异步的.
var input = window.document.querySelector('#upload');
Element log = query("#log");
input.addEventListener("change", (e) {
FileList files = input.files;
Expect.isTrue(files.length > 0);
File file = files.item(0);
FileReader reader = new FileReader();
reader.onLoad = (fileEvent) {
print("file read");
log.innerHTML = "file content is ${reader.result}";
};
reader.onerror = (evt) => print("error ${reader.error.code}");
reader.readAsText(file);
});
Run Code Online (Sandbox Code Playgroud)
您还需要允许文件上传到您的浏览器,这可以通过使用标志--allow-file-access-from-files启动来在Chrome中完成
这是使用读取文件的方法dart:html。
document.querySelector('#myinputelement`).onChange.listen((changeEvent) {
List fileInput = document.querySelector('#myinputelement').files;
if (fileInput.length > 1) {
// More than one file got selected somehow, could be a browser bug.
// Unless the "multiple" attribute is set on the input element, of course
}
else if (fileInput.isEmpty) {
// This could happen if the browser allows emptying an upload field
}
FileReader reader = new FileReader();
reader.onLoad.listen((fileEvent) {
String fileContent = reader.result;
// Code doing stuff with fileContent goes here!
});
reader.onError.listen((itWentWrongEvent) {
// Handle the error
});
reader.readAsText(fileInput[0]);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3450 次 |
| 最近记录: |