没有输入按钮javascript读取文件

时间:2014-09-11 11:48:25

标签: javascript cordova dojo

我们谈论的文件是zip

    <input type="file" id="file-input" name="files[]" accept="application/zip"/>

dojo中的代码..

   fileInput = document.getElementById("file-input");
                    fileInput.addEventListener('change', function() {
                        console.log("File success");
                        console.log(fileInput.files[0]);
                        zipParser(fileInput.files[0]);
                    },false);

表示点击按钮获取finder / explorer ..选择zip文件,在更改列表器上我们获取文件实例

console.log显示

File success 
tpk-layer1.html:168 File {webkitRelativePath: "", lastModifiedDate: Tue Sep 09 2014 11:50:18 GMT+0530 (IST), name: "Beirut.zip", type: "application/zip", size: 14263592…}lastModifiedDate: Tue Sep 09 2014 11:50:18 GMT+0530 (IST)name: "Beirut.zip"size: 14263592type: "application/zip"webkitRelativePath: ""__proto__: File 

我不想要按钮实例。这就是这个onclick和listner需要删除,并且应该直接调用文件onload of page ..

如何实现这一目标。如果需要澄清,请告诉我

更多信息

我试过调用

zipParser('/samples/tpks/Beirut.zip');

但得到了回复

Uncaught TypeError: Failed to execute 'readAsArrayBuffer' on 'FileReader': The argument is not a Blob. 

请注意,这适用于 Phonegap应用

1 个答案:

答案 0 :(得分:1)

如果它是您需要的blob,您可以使用XMLHttpRequest:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
    if (this.readyState == 4 && this.status == 200){
       var blob = this.response;
       // Call zipParser?
       zipParser(blob);
    }
}
xhr.open('GET', './yourZipFile.zip');
xhr.responseType = 'blob';
xhr.send();