我创建了一个上传表单在我上传小文件时工作正常。当我尝试上传大文件时,html表单无效。你有没有经历过这个?
答案 0 :(得分:1)
默认情况下,PHP允许最大文件上传量为2MB。您可以要求用户在上传之前调整图片大小,但让我们面对它:他们不会。幸运的是,我们可以在必要时增加限制。
两个PHP配置选项控制最大上传大小:upload_max_filesize
和post_max_size
。对于10兆字节的文件大小,两者都可以设置为“10M”。
但是,您还需要考虑完成上传所需的时间。 PHP脚本通常会在30秒后超时,但10MB文件在健康的宽带连接上上传至少需要3分钟(请记住,上传速度通常比下载速度慢5倍)。此外,操纵或保存上载的图像也可能导致脚本超时。因此,我们需要将PHP的max_input_time
和max_execution_time
设置为300(以秒为单位指定5分钟)。
可以在服务器的php.ini
配置文件中设置这些选项,以便它们适用于所有应用程序。如果您使用的是Apache,则可以在应用程序的.htaccess
文件中配置设置:< / p>
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限制。
答案 1 :(得分:0)
根据您的php版本,您可以尝试以下内容:
ini_set('post_max_size', '32M');
ini_set('upload_max_filesize', '32M');
ini_set('memory_limit', '32M');
只需将“32”替换为所需的最大尺寸。