【发布时间】:2021-12-09 16:19:34
【问题描述】:
我正在尝试创建一个带有客户端文件输入的站点,其中一些数据完全在客户端处理,没有任何内容发送到服务器。
我有以下 Svelte 组件 (App.svelte):
<script>
let data;
function handleFileSelect(evt) {
var files = evt.target.files;
if (! (files && files[0])) {
return;
}
let binfile = files[0];
let reader = new FileReader();
reader.onload = function(evt) {
data = new Uint8Array(evt.target.result);
}
reader.readAsArrayBuffer(binfile);
}
</script>
<main>
<label for="fileinput">Your data</label>
<input type="file" id="fileinput" on:click={handleFileSelect}/>
<div>
<textarea id="datafield" rows="10" cols="50">{data}</textarea>
</div>
</main>
当我单击按钮时,文本区域中的数据不会更新,但是当我第二次单击按钮时,一旦单击,数据就会加载到文本区域中。我在正确的轨道上加载文件吗?我错过了什么?谢谢!
【问题讨论】:
标签: svelte