2011-08-27 80 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?如果是这样,有人已经建立了我应该使用的跨浏览器包装?

回答