【问题标题】:Is there any way to allow failed uploads to resume with a Perl CGI script?有没有办法让失败的上传通过 Perl CGI 脚本恢复?
【发布时间】:2011-02-27 19:48:42
【问题描述】:

应用程序很简单,是一个发布到 Perl 脚本的 HTML 表单。问题是我们有时让我们的客户上传非常大的文件(> 500mb),他们的互联网连接有时可能不可靠。

有什么方法可以像在 WinSCP 中那样恢复失败的传输,还是如果没有客户端支持就无法完成?

【问题讨论】:

    标签: perl file upload cgi


    【解决方案1】:

    AFAIK,它必须得到客户端的支持。基本上,客户端和服务器需要协商文件的哪些部分(可能定义为“multipart/form-data”POST中的部分)已经上传,然后服务器代码需要能够将新上传的数据与现有的。

    最好的解决方案是使用自定义上传器代码,通常用 Java 实现,但我认为这在 Flash 中也是可能的。您甚至可以通过 JavaScript 做到这一点 - 请参阅下面的 2 部分示例


    以下是 Google 如何使用 YouTube 的示例:http://code.google.com/apis/youtube/2.0/developers_guide_protocol_resumable_uploads.html

    它使用“308 Resume Incomplete”HTTP 响应,从服务器发送 range: bytes=0-408 标头以指示已上传的内容。


    有关该主题的其他想法:

    1. http://code.google.com/p/gears/wiki/ResumableHttpRequestsProposal

    2. 有人在客户端使用 Google Gears 并在服务器端使用 PHP(后者您可以轻松移植到 Perl)

      http://michaelshadle.com/2008/11/26/updates-on-the-http-file-upload-front/

      http://michaelshadle.com/2008/12/03/updates-on-the-http-file-upload-front-part-2/

    【讨论】:

      【解决方案2】:

      很遗憾您的客户不能使用 ftp 上传,因为这已经包含了类似的功能。 HTTP 中还有“分块传输编码”。我不知道哪些 Perl 模块可能已经支持它。

      【讨论】:

        猜你喜欢
        • 2012-05-31
        • 2012-01-03
        • 2013-10-26
        • 2022-11-21
        • 1970-01-01
        • 1970-01-01
        • 2023-04-04
        • 2013-09-04
        • 1970-01-01
        相关资源
        最近更新 更多