将通过<input type="file">上传的txt文件存储在localStorage,提取并构建File对象

参考博文:
  JS 之Blob 对象类型
  在本地存储localStorage中保存图片和文件

<input type="file" id="jobData" onchange="loadFile(this.files[0])">

<script>
    var filename_1 = localStorage.getItem("filename_1");//存在localStorage中的文件名
    var fileresult_1 = localStorage.getItem("fileresult_1");//存在localStorage中的文件内容(string)
    //若localStorage已有该项
    if(filename_1 && fileresult_1){
        //storageFile:通过localStorage中的文件内容和文件名构建的File对象
        var storageFile = new File([fileresult_1], {"type":"text/plain"});//File继承自Blob,可以用Blob的构造函数
        Object.defineProperty(storageFile,'name',{value:filename_1});
//        console.log(storageFile);
    }

    function loadFile(file){
        var fileReader = new FileReader();
        fileReader.onload = function () {
            var result = this.result;//文件内容
            //确定,将文件保存到本地存储中,替换现有的
            try {
                localStorage.setItem("filename_1", file.name);
                localStorage.setItem("fileresult_1", result);
            }
            catch (e) {
                console.log("Storage failed: " + e);
            }
        };
        fileReader.readAsText(file);
    }

</script>
posted @ 2017-06-11 22:56  妙音天女  阅读(4374)  评论(0编辑  收藏  举报