本文描述了使用javascript读取用户通过Input控件选择的文件的内容的方法和注意事项。后面用英文写,但我的英文不太好,如有错误之处,希望大家帮我纠正,我的联系方式在后面。
When user select a file by <input type=file>, its content can be read by javascript like this:29Please respect copyright.PENANAL22kdWZIvf
---read whole file content into array buffer---29Please respect copyright.PENANAzKxCfmfz7B
let file=input.files[0]; const reader = new FileReader(); 29Please respect copyright.PENANAsJSxrQKEBL
reader.onload = () => 29Please respect copyright.PENANA7qSVijc2Cp
{29Please respect copyright.PENANAuCAiOKNCKk
let content_whole = new Uint8Array(reader.result);29Please respect copyright.PENANAzwZsqmxns8
}29Please respect copyright.PENANAws8mI9hIQl
reader.readAsArrayBuffer(file);29Please respect copyright.PENANA2XNeiDKVhD
-----------------------------------------------
If the file size is too large, the browser may crash as the whole file content are loaded into memory by array buffer. In order to avoid it, we can just read a part of the file like this:29Please respect copyright.PENANAGqZPZIaOQv
---read part of file content into array buffer---29Please respect copyright.PENANAlVxQhUsNb4
let file=input.files[0], block_size=1000000, start=0, end=block_size; const reader = new FileReader(); 29Please respect copyright.PENANAMjyANZwSWX
reader.onload = () => 29Please respect copyright.PENANAhH0G1i0bKH
{29Please respect copyright.PENANA5hYD0wWVnD
let content_part = new Uint8Array(reader.result);29Please respect copyright.PENANA1e4FOZRE9W
}29Please respect copyright.PENANAxIMUE67mq2
reader.readAsArrayBuffer(file.slice(start,end));29Please respect copyright.PENANAwidIfc08lC
-----------------------------------------------
29Please respect copyright.PENANA3EOM3xdJM1
Section X. Thanks29Please respect copyright.PENANAKrAqu4p0DT
https://segmentfault.com/a/1190000022113605
Section Y. Contacts Me
If you found any errors or have any suggestions for this article, please let me know, my wechat: si_jinmin, my email: si.jinmin@gmail.com29Please respect copyright.PENANAcsYySJtari
如果您发现本文有任何错误,或者对本文有好的建议,欢迎与我联系探讨,我的微信: si_jinmin, 我的email: si.jinmin@gmail.com
如果您對C/C++ Programming, Linux, HTTP Protocol, Website Development, Vue, Git, VsCode感興趣,邀請您加入「Linux/C/C++ Website Development」微信群,請加我的微信(si_jinmin)以便拉您进群。
ns 15.158.61.7da2