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