PHP |文件上传,修改$ _FILES

时间:2015-10-05 16:47:44

标签: php html forms file

我有一个处理上传文件的HTML表单。

我使用PHP变量$_FILESname, type, error, size, tmp_name)将值存储在我的数据库中,并验证上传的文件。

我通过检查mime类型以及不是什么来做大多数验证。但是,在检查文档大小时,经过研究后我听说用户可以轻松修改$_FILES["size"]的内容,并在那里制作假值。

这对我的网站来说是一个问题,因为我计划将某些用户限制为20MB upload及更高级别的成员上传最多100mb,依此类推......所以当然如果定期的话会有问题用户欺骗代码说大小低于20mb,而文件实际上可能超过20MB。

所以问题是,我如何解决这个问题并正确检查文件大小?

注意,我无法使用getimagesize(),因为上传的文件不是图片。

2 个答案:

答案 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';
?>

阅读php manual filesize

中的文档