【问题标题】:How to reliably upload large files through a web interface如何通过 Web 界面可靠地上传大文件
【发布时间】:2011-07-06 15:34:37
【问题描述】:

背景: 我有一个处理大型视频文件(体育视频)的网站。该网站允许用户上传任何源文件,但大多数视频来自 DVD。我目前正在使用jumploader 的修改版本通过HTTP 请求对文件进行编码和上传到网络服务器。 jumploader 是一个 java 客户端,查看我的 webstats,我的用户中只有大约 75% 的用户安装了 java。

我想要的: 我一直在寻找一个基于闪存的上传器,它可以将字节流传输到服务器。字节流将是理想的,因此我可以为失败的上传捕获部分视频。我也寻找过基于闪存的 ftp 客户端,但我没有发现任何有希望的东西。有一些基于 Flash 的上传器通过 HTTP 发布,我正在考虑这一点。我不想使用简单的文件发布。有的上传方式也会先把完整的文件放到内存中,这显然不是我的选择。

有没有人有从 Web 前端 (PHP) 可靠地将大型(最大 2-3GB)文件上传到 Web(或 ftp)服务器的经验?

【问题讨论】:

    标签: php flash ftp


    【解决方案1】:

    作为基于 Flash 的解决方案,您可以使用 swfupload,它被广泛使用,因为您可以显示进度条。它会将答案发回给您,您可以使用 JavaScript 阅读这些答案。

    我们决定使用 Transloadit,这是一项专门用于上传和编码视频文件的服务。您甚至可以通过关闭浏览器窗口来跟踪下载是否中止,它具有实时编码并支持多种格式。此外,您的文件存储在 Amazon S3 中,因此您可以使用 AWS CloudFront 和 JWPlayer 或 Flowplayer 轻松流式传输它们。

    另见 zencoder。

    干杯

    【讨论】:

    • 我之前看过SWFUpload,还是有这个可能的。促使我在这里提出这个问题的原因是,SWFUpload 发布的是 HTTP 帖子,而不是 FTP 或流式字节块。 Transloadit 很有趣,但非常昂贵,每 GB 2-4 个!它只是一个表单输入,它执行 HTTP 发布(没什么特别的)和编码、S3 上传、缩略图......我已经自己实现了这个,所以它一点也不吸引人。我正在处理 100 GB,所以这对我来说不是一个好选择。
    • 好的,只是建议。因此,当您自己实现 Transloadit 的大部分功能时,我知道他们使用 nodejs 流式传输字节块。但也许深入研究它太复杂了......
    猜你喜欢
    • 2023-03-08
    • 2011-08-06
    • 2016-07-29
    • 2013-02-26
    • 2014-07-17
    • 1970-01-01
    • 2015-01-13
    • 1970-01-01
    • 2020-12-17
    相关资源
    最近更新 更多