1

我有一个网站,管理员必须上传高清质量的电影。电影大小几乎2GB+

PHP 或 apache 是否支持 2GB 或更大的文件上传?

做这个的最好方式是什么?我应该使用 ajax 上传、swf 上传(uploadify)还是普通表单提交上传?

我正在使用 PHP 5.4

4

3 回答 3

1

两个 PHP 配置选项控制最大上传大小:upload_max_filesizepost_max_size. 对于 10 兆字节的文件大小,两者都可以设置为“10M”。

但是,您还需要考虑完成上传所需的时间。PHP 脚本通常会在 30 秒后超时,但在正常的宽带连接上上传一个 10MB 的文件至少需要 3 分钟(请记住,上传速度通常比下载速度慢五倍)。此外,操作或保存上传的图像也可能导致脚本超时。因此,我们需要将 PHP 的max_input_time和设置max_execution_time为 300(以秒为单位指定 5 分钟)。

这些选项可以在您的服务器的 php.ini 配置文件中设置,以便它们适用于您的所有应用程序。或者,如果您使用的是 Apache,您可以在应用程序的 .htaccess 文件中配置设置:

php_value upload_max_filesize 10M
php_value post_max_size 10M
php_value max_input_time 300
php_value max_execution_time 300

最后,您可以在 PHP 应用程序中定义约束:

ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);

PHP还提供了一个set_time_limit()函数,所以你不需要max_execution_time直接设置。

在您的 PHP 代码中设置选项可能更实用,因为当您的应用程序需要大量上传时,您可以延长执行时间并增加文件大小。其他形式将恢复为默认的 30 秒超时和 2MB 限制。

于 2013-03-12T12:57:37.120 回答
0

您可能需要增加 Apache 的 conf 中的最大文件上传大小,以及 php.ini 文件中的 post_max_size 和 upload_max_size 指令。

于 2013-03-12T12:55:27.903 回答
0

如果文件 >=2GB,您可能会达到某些浏览器限制。
此外,上传 2GB 可能需要一些时间(可能超过网络服务器的超时时间)。
如果您的连接中断,您必须重新上传整个文件。

于 2013-03-12T13:00:28.107 回答