【问题标题】:What's the most bullet-proof way to upload large files in a web app?在网络应用程序中上传大文件最安全的方法是什么?
【发布时间】:2010-09-24 00:12:36
【问题描述】:

我们必须接受大文件上传(视频内容),并希望以一种适用于所有符合标准的浏览器和插件的方式进行。我们当前的设置如下所示:

  • SWFUpload
  • 输入 type="file" 进行优雅降级

在服务器端,我们有 nginxupload module 将上传的文件流式传输到服务器,然后将请求交给一个 merb 应用程序。

不幸的是,最近发布的 Adob​​e Flash Player 10 似乎破坏了所有免费/开放的上传 Flash 组件(然后,一些其他网站也有自己的专有版本),但其他一些网站,例如FlickrVimeo,似乎工作得很好。

我一直在四处寻找其他方法,但由于必须同时兼容 Flash 9 和 10,因此我找不到合适的解决方案。有什么想法吗?

【问题讨论】:

    标签: javascript html flash upload


    【解决方案1】:

    文件上传总是很痛苦。

    不久前我尝试了一些 Flash 上传器,似乎它们都存在不能在 Mac 上显示进度条的限制。更不用说升级到 flash 10 破坏了大多数 flash 上传器,因此我们公司应用程序的用户从多选包含 50 个文件的整个文件夹一次上传到一次上传 50 个文件。

    Java 上传器工作正常(即使通过 Java 更新),但如果您的用户群不多,您可以解释为什么他们需要下载 Java 并允许小程序在他们的浏览器中运行,大多数人不会使用它。

    我认为中间立场是只使用 ftp。它很旧但很有效,适用于非常大的文件和多个文件。

    【讨论】:

    • 我的投票只是 Java,现在几乎每个人都拥有它。 FTP 不适用于普通用户。
    • 为 TravisO +1,不管他们是否知道,每个人都有 Java。
    【解决方案2】:

    试试FancyUpload。它是一个 MooTools 上传器,适用于 Flash 9 和 10。

    【讨论】:

      【解决方案3】:

      我一直在使用JumpLoader,效果很好。支持很好,提供免费版本,甚至包括一些基本的图像处理功能(裁剪、调整大小等)。

      根据我的谷歌分析数据(非技术网站),99% 的访问者都安装了 Java,所以这不是问题。

      当然,请始终提供一个简单的input type="file" 替代方案,以防万一。

      【讨论】:

        【解决方案4】:

        Java 上传器是大文件的最佳工具,试试Rad Upload,它对大文件非常有用。

        【讨论】:

          【解决方案5】:

          SWFUpload 的新版本 (v2.2.0+) 处理 Flash 10 问题。

          【讨论】:

          • 它们似乎在某些情况下 - 不幸的是,它们似乎没有在我们测试的某些平台上调用 update_progress_handler 事件(MacOS X 10.5.5 - Safari 3.x 和 Firefox 3)。你认为这是一个无关的问题吗?
          猜你喜欢
          • 1970-01-01
          • 2013-05-20
          • 1970-01-01
          • 2010-12-31
          • 1970-01-01
          • 2019-07-19
          • 2018-01-23
          • 1970-01-01
          • 2012-05-31
          相关资源
          最近更新 更多