PHP上传限制不会影响。大文件位于/ tmp文件夹中

时间:2012-11-05 08:30:44

标签: php file-upload temporary-files

我的网络服务器出了问题。 我将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请求和文件的站点是什么?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

upload_tmp_dir = /scratch/custom_temp

或在php脚本中覆盖:

<?php
    ini_set('upload_tmp_dir', '/scratch/custom_temp');
?>