使用纯 Javascript 将上传的文件读入内存
你在 Javascript 中有一个 File 对象(例如来自拖放上传或 <input type="file">),你想在浏览器中将其读入内存。你不想使用任何库来完成此操作,而是偏好纯 Javascript 解决方案。
解决方案
使用此函数:
read_file_into_memory.js
/**
* 将整个文件读入内存的实用函数。
*
* 处理函数传递一个对象数组:
* {
* name: 文件名为字符串,
* size: 大小以字节为数字,
* type: MIME 类型为字符串,
* content: 文件内容为 Uint8Array
* }
* @param file 要读取的文件
* @param handler
*/
function readFileIntoMemory (file, callback) {
var reader = new FileReader();
reader.onload = function () {
callback({
name: file.name,
size: file.size,
type: file.type,
content: new Uint8Array(this.result)
});
};
reader.readAsArrayBuffer(file);
}用法示例:
read_file_into_memory_usage.js
// 用法示例
readFileIntoMemory(file, function(fileInfo) {
console.info("Read file " + fileInfo.name + " of size " + fileInfo.size);
// 你可以在此使用 fileInfo.content,它是一个 Uint8Array
});Check out similar posts by category:
Javascript
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow