【问题标题】:Is uploading very large files (eg 500mb) via php advisable?是否建议通过 php 上传非常大的文件(例如 500mb)?
【发布时间】:2011-04-09 04:21:05
【问题描述】:

我创建了一个简单的 Web 界面来允许各种用户上传文件。我将上传限制设置为 100mb,但现在发现客户端偶尔想要上传 500mb+ 的文件。

我知道如何更改 php 配置以更改上传限制,但我想知道通过 php 上传这种大小的文件是否有任何严重的缺点?

显然 ftp 会更好,但如果可能的话,我宁愿没有两种不同的上传文件的方法。

谢谢

【问题讨论】:

  • 这与此线程有些相关:stackoverflow.com/questions/597159/…
  • @Burbas 除了那个线程是关于下载的,而这个线程是关于上传的:)
  • 我的错:-)。然后忽略我之前的评论;)

标签: php post upload


【解决方案1】:

PHP 将处理您允许的尽可能多和尽可能大的文件。但是请考虑在 PHP 中恢复中止的上传基本上是不可能的,因为直到上传完成后才会触发脚本。文件越大,网络故障杀死上传并浪费大量时间和带宽的机会就越大。同样,如果不使用 APC 进行额外的工作,或者使用像 uploadify 这样的东西,就没有进度报告,用户只能盯着浏览器看,除了颤抖的声音外,没有明显的实际工作迹象。

【讨论】:

    【解决方案2】:

    无论您使用哪种服务器技术(PHP 或其他),以同步模式一次性推送大文件绝不是一个好主意。

    任何技术/框架都有很多插件可以为您进行异步上传。

    除了连接超时之外,还有一个缺点是文件上传会消耗网络服务器的内存。你通常不希望这样。

    【讨论】:

    • “内存”是指“磁盘空间”。
    • 我的意思是内存。但我不确定 PHP 以及它如何处理上传。
    【解决方案3】:

    首先,FTP 永远不可取。对任何东西。

    我假设您的意思是通过 HTTP 传输文件。虽然不如 FTP 糟糕,但如果您能找到另一个解决问题的方法,这不是一个好主意。 HTTP(以及因此的组件程序)针对在 Internet 上传输相对较小的文件进行了优化。

    虽然协议支持服务器到客户端的范围请求,但它不允许反向操作。即使任一端的软件都不受卷的影响,您推送的数据越多,您可能失去连接的时间间隔就越大。但最大的问题是最后一句中的警告。

    【讨论】:

      猜你喜欢
      • 2011-07-06
      • 2013-04-12
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 2012-10-18
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      相关资源
      最近更新 更多