2011-08-27 81 views
7

所以我工作的一個Web應用程序,其中用戶將需要:的Javascript:跨瀏覽器的無服務器文件上傳和下載

  • 提供全面的數據文件,以對
  • 挽救他們的工作成果到一個文件

所有的操作都在JavaScript中完成,所以我真的不需要服務器端代碼(只是靜態託管),我喜歡這種方式。

在Firefox中,我可以使用file manipulation api來允許用戶直接將文件上傳到客戶端代碼(使用標準<input type=file/>),並在文件中創建對象URL,以便用戶可以保存創建的文件由客戶端代碼。

<input type="file" id="input" onchange="handleFiles(this.files)"> 
<a download="doubled" id="ex">right-click and save as</a> 
<script> 
    function handleFiles(fileList){ 
    var builder = new MozBlobBuilder(); 
    var file = fileList[0]; 
    var text = file.getAsBinary(); 
    builder.append(text); 
    builder.append(text); 
    document.getElementById('ex').href = window.URL.createObjectURL(builder.getBlob()); 
    } 
</script> 

所以這很好。現在我想在其他瀏覽器中也這樣做 - 或者至少是其他瀏覽器的現代版本。 Chrome和IE是否有類似的API?如果是這樣,有人已經建立了我應該使用的跨瀏覽器包裝?

回答