我有一个处理上传文件的HTML表单。
我使用PHP变量$_FILES
(name, type, error, size, tmp_name
)将值存储在我的数据库中,并验证上传的文件。
我通过检查mime类型以及不是什么来做大多数验证。但是,在检查文档大小时,经过研究后我听说用户可以轻松修改$_FILES["size"]
的内容,并在那里制作假值。
这对我的网站来说是一个问题,因为我计划将某些用户限制为20MB upload
及更高级别的成员上传最多100mb,依此类推......所以当然如果定期的话会有问题用户欺骗代码说大小低于20mb,而文件实际上可能超过20MB。
所以问题是,我如何解决这个问题并正确检查文件大小?
注意,我无法使用getimagesize()
,因为上传的文件不是图片。
答案 0 :(得分:0)
这是正常的
每个人都可以更改请求标题
用户也可以更改$_FILES[*]['type']
,因此您必须小心它
你必须使用filesize()
php函数http://php.net/manual/en/function.filesize.php
<?php
echo filesize($_FILES['myFile']['tmp_name']);
?>
希望能帮助你
答案 1 :(得分:0)
尝试使用filesize函数php, 例如
<?php
$filename = $_FILES['File']['tmp_name'];
echo $filename . ': ' . filesize($filename) . ' bytes';
?>
中的文档