【问题标题】:Javascript: cross-browser serverless file upload and downloadJavascript:跨浏览器无服务器文件上传和下载
【发布时间】:2011-11-04 21:56:17
【问题描述】:

所以我正在开发一个用户需要的网络应用程序:

  • 提供一个完整的数据文件来处理
  • 将结果保存到文件中

所有操作都是在 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?如果是这样,是否有人已经构建了我应该使用的跨浏览器包装器?

【问题讨论】:

    标签: javascript file api cross-browser


    【解决方案1】:

    它主要在 Firefox 3.6+、Chrome 10+、Opera 11.1+ 以及希望 Safari 6 和 IE 10 上可用。

    请参阅:http://caniuse.com/#search=FileReader

    【讨论】:

    • 耶!这是一个非常棒的工具。
    【解决方案2】:

    查看FileSaver.jsa[download] attribute(Chrome 开发频道支持)。 Blob(对象)URL 现在有点 limited support

    【讨论】:

    • 太棒了 - 我刚刚发现我需要像 blob url 这样的东西来保存我生成的东西。
    猜你喜欢
    • 2016-10-25
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    相关资源
    最近更新 更多