使用纯 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