【问题标题】:How to resume a broken upload in HTML5如何在 HTML5 中恢复损坏的上传
【发布时间】:2011-12-03 23:25:06
【问题描述】:

我正在尝试将简历功能添加到 html5 文件上传器。

我需要能够在浏览器关闭(并重新打开)并且我丢失了文件对象后能够恢复,我不希望用户再次拖动/打开文件。

直到现在我使用 java applet 来做,但我希望找到一个 html5 解决这个问题。

我想过将文件保存在本地存储中,但它们太大了。

有没有办法只保存文件对象的路径或任何其他可能帮助我重新打开文件而不要求用户重新打开文件的信息?

【问题讨论】:

    标签: javascript html file-upload local-storage resume


    【解决方案1】:

    对不起,这是不可能的。文件和浏览器之间的链接,您可以使用 javascript (FileURL) 访问的链接在关闭窗口后被破坏(当然,在关闭浏览器时)。您可以保存文件的名称和上传的数量/部分,并请求用户再次上传该文件,从他离开的地方继续,但不是自动,未经用户同意。

    /编辑:为什么投反对票?请发表评论,以便我知道我说错了什么!问题是关于当用户关闭浏览器时如何恢复上传。这是不可能的。可以在浏览器保持打开且连接丢失时停止/恢复上传,但在用户关闭浏览器时不能(参考丢失)。但是,您可以将文件复制到 temporary filesystem,然后从那里继续上传,但这需要用户同意,并且仅限于用户为您提供的空间量。

    【讨论】:

    • 如果用户再次选择同一个文件,则可以“恢复”上传,但您是对的,您无法访问用户在前一个会话中选择的文件(即,您可以不只是通过路径访问文件,用户必须在<input type="file" /> 或通过拖放选择文件)
    【解决方案2】:

    较新的浏览器(Chrome、Firefox)可以做到这一点。

    youtube 上传器就是一个很好的例子。 http://support.google.com/youtube/bin/static.py?hl=en&topic=1719827&guide=1719823&page=guide.cs&answer=1672758

    http://www.youtube.com/watch?v=L5ebSn9HgJ4

    我不完全确定他们的实现是如何完全工作的,但这是可能的。

    【讨论】:

      【解决方案3】:

      您可能想试试Resumable.js - JavaScript Library Providing Multiple Simultaneous, Stable And Resumable Uploads Via The HTML5 File API(或其域www.resumablejs.com)。

      可恢复。 js 一个 JavaScript 库,通过 HTML5 File API 提供多个同步、稳定和可恢复的上传。

      该库旨在将容错引入通过 HTTP 上传大文件。这是通过将每个文件分成小块来完成的;每当块上传失败时,都会重试上传,直到过程完成。这允许上传在本地或服务器丢失网络连接后自动恢复上传。此外,它允许用户在不丢失状态的情况下暂停和恢复上传。

      Resumable.js 依赖于 HTML5 文件 API 以及将文件分块成小块的能力。目前,这意味着支持仅限于 Firefox 4+ 和 Chrome 11+。

      【讨论】:

        猜你喜欢
        • 2012-10-06
        • 1970-01-01
        • 2015-06-21
        • 2014-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-08
        相关资源
        最近更新 更多