5

我的网络服务器有问题。我将 PHP 配置为最大上传大小为 300MB。我更改了 php.ini 中的 2 个选项 php_value upload_max_filesize 300MB php_value post_max_size 300MB

这工作正常。但最近我注意到 /tmp 文件夹中有很大的文件(这是 PHP 的临时文件夹)。有 3 个大小为 1.5GB 的文件并继续增长。文件名就像临时 php 文件 /tmp/php* * (**一些随机代码)。

我检查了写入这些文件的过程是我为上传而创建的 PHP 脚本。

所以我的问题是为什么 PHP 上传和发布限制对这些文件没有影响?可能是什么原因?也许PHP首先将所有上传的数据保存到临时目录,然后才计算大小并检查它是否好?

我感谢任何评论。

更新。这可以像 - http 客户端发送一个没有内容长度的请求,所以 php 不能使用 post_max_size 来限制影响。PHP 将所有内容写入磁盘,因为不知道 POST 请求的站点和其中的文件是什么?

4

2 回答 2

2

您需要在 php.ini 中设置 upload_max_filesize 和 post_max_size 的值:

; Maximum allowed size for uploaded files.
upload_max_filesize = 300M

; Must be greater than or equal to upload_max_filesize
post_max_size = 300M

或在 .htaccess

php_value upload_max_filesize 300M
php_value post_max_size 300M
于 2012-11-05T08:34:33.173 回答
0

尝试设置一个tmp空间更大且没有限制的新目录,而不是系统默认(/tmp)。您可以通过更改php.ini文件中的默认目录来执行此操作:

upload_tmp_dir = /scratch/custom_temp

或在 php 脚本中覆盖:

<?php
    ini_set('upload_tmp_dir', '/scratch/custom_temp');
?>
于 2019-01-05T06:42:27.827 回答