echo $_FILES['data-file']['tmp_name'];死;如果 PHP 中的大小超过 128M,则不会打印文件名

echo $_FILES['data-file']['tmp_name']; die; file name is not printed if size more then 128M in PHP

我尝试上传 300 MB 的文件。但未上传,现在显示任何错误。 php.ini 文件中的变量值是

post_max_size 800M
upload_max_filesize 750M
memory_limit 2048M
max_execution_time  17100
max_input_time 17100

如果我尝试通过 echo $_FILES['data-file']['tmp_name'] 打印文件的 tmp 名称;死;没有显示页面重定向到主页。但对于小于 128M 的文件,它会显示 /tmp/phpShle 那样。

如果您在 LAMP 上,请确保您正在编辑正确的 php.ini 文件。在 LAMP 中,您会发现与 cli 相关的 php.ini 和 php-apache 相关的 php.ini。要使上述文件上传方案成为可能,您需要编辑 /etc/php5/apache2/ 中的 php-apache php.ini 文件并重新启动 apache 服务。

如果你在 WAMP 上,它只有一个 php.ini 并且 WAMP 会在编辑文件后自动重启服务。所以它应该可以工作。

-或-

您可以在 web 主目录中写入一个 .htaccess 文件。

RewriteEngine on

php_value post_max_size 300M

php_value upload_max_filesize 300M

请将此写在 .htaccess 上。

<IfModule mod_php5.c>
php_value post_max_size           256M
php_value upload_max_filesize     256M
php_value memory_limit            500M
</IfModule>

这可能对您有所帮助。干杯:)

我的问题解决了。我需要在 modsec2.user.conf 文件

上设置变量
SecRequestBodyLimit 1073741824
SecRequestBodyNoFilesLimit 1073741824

这是一个 Apache 服务器文件。错误显示在 Apache 错误日志中。