0

我们正在开发一个网站,用户可以在其中更改他们的滑块图像。(全屏滑块)每张图片的大小约为 2000 到 2000 像素,我们允许用户在我们的 HTML 表单中上传任意数量的图片(上限为 10 个)。

他们的上传速度会很慢,我相信我们会轻松通过 PHP 的 max_execution_time,默认为 30 秒。我们还将允许用户在未来上传一些 .rar/.zip 文件,上限为 100MB。

我们没有什么想法,但我想向 SO 寻求更好的解决方案/评论。

  1. 我们可以将 30 秒更改为更高的值,因为我们可以访问 PHP.ini 并让用户一次上传所有图像,但这可能会长期产生与性能相关的问题。(这不是一个选项!)
  2. 我们可以在客户端大小中使用 javascript。对于以 HTML 形式指定的每个图像路径,javascript 可能会将其与 XMLHttpRequest 一起发布并期望得到响应。如果响应为真,则 javascript 将移动到下一个图像并尝试上传它。(利润:每个图像都会自己启动 php 并获得自己的 30 秒生命周期。)
  3. 当文件超过 50MB 时,Javascript 解决方案将无法用于文件上传。客户通常在目标区域将上传速度限制在 25kbps,因此他们无法在 30 秒内上传 50MB。与 #2 类似,我们可以使用一个脚本,其中上传的文件每 30 秒保存一次字节,客户端继续推送剩余的字节,或类似的东西。

基本上,您将如何完成这项任务?我们不想依赖 PHP.ini,所以不应该增加 max_execution_time。

我们应该使用#2 来上传图片吗?你对#3 有什么建议?

4

1 回答 1

2

看看分块上传。

您需要使用某种上传器脚本,例如JUploadplUpload。您可以指定应该将多大的文件块发送到服务器。例如,如果你有一个 10MB 的文件,你可以将它分块为 1MB,这样 10 个 1MB 的块将被上传到服务器。在连接速度较慢的情况下,只需将块缩小到 500KB 即可。

于 2013-05-10T14:58:05.040 回答