为什么 HTML 表单停止处理大文件?

Why HTML form stopped working on large files?

我创建了一个上传表单,当我上传小文件时它工作正常。当我尝试上传大文件时,html 表单不起作用。你有过这样的经历吗?

根据您的 php 版本,您可以尝试类似的操作:

ini_set('post_max_size', '32M');
ini_set('upload_max_filesize', '32M');
ini_set('memory_limit', '32M');

只需将“32”替换为您想要的最大尺寸即可。

默认情况下,PHP 允许上传的最大文件为 2MB。您可以要求用户在上传前调整图片大小,但让我们面对现实吧:他们不会。幸运的是,我们可以在必要时增加限制。

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

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

这些选项可以在您服务器的 php.ini 配置文件中设置,以便它们适用于您使用的所有 applications.if 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 限制。