我正在尝试通过表单将文件上传到服务器:
<form action="send_valid.php" method="POST" enctype= "multipart/form-data">
<br>
<input type="file" name="pdf" id="pdf" accept="application/pdf"/>
<input type="hidden" name="MAX_FILE_SIZE" value="10000000"/>
<input type="submit" value="Wyślij">
</form>
我想允许用户只发送PDF文件一的最大大小为10MB。
我用于上传的 php 配置是:
file_uploads = On
upload_tmp_dir = "E:\Xampp\tmp"
upload_max_filesize = 11M
max_file_uploads = 20
post_max_size = 12M
要检查我使用的文件大小:
if($_SERVER["REQUEST_METHOD"] == "POST"){
var_dump($_FILES);
if(extract($_FILES)){
if($pdf['size']>10000000){
echo "File size is too large!";
}
}
现在,当文件太大时,我想通过echo向用户显示一个错误(暂时)。如果它低于 10Mb,它工作正常(当我将大小更改为 1Mb 并且文件更大时,即使上面的代码也能工作,然后它会显示echo),但对于 10Mb 及以上的文件,它会产生该错误:
Warning: POST Content-Length of 11450416 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
array(0) { }
我不知道为什么它显示它超过8Mb,因为在配置中我在任何地方都找不到 8Mb。
问题出在哪里?有没有办法捕捉超过配置设置的上传,而不向用户显示 php 服务器错误?
如果我想让文件验证执行上述方法并检查文件扩展名,例如:
$ext = pathinfo($_POST['pdf'], PATHINFO_EXTENSION);
够了吗?任何有关文件验证的见解都会非常有帮助。
更新php 配置文件中post_max_size
和的值upload_max_filesize
。
请注意,这些值以字节为单位。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句