您的位置:首页 > 编程语言 > PHP开发

关于php的大文件上传POST超过最大限制报错问题

2017-12-15 20:37 561 查看
在学php的时候,做了一个简单的上传文件的demo,在上传大文件的时候发现报如下的错:



大概的意思就是:你所上传的文件大小超过了POST的最大限制大小(8M),

以下是有道翻译的结果警告:POST content -

length为2110919154字节,超过了第0行未知的8388608字节的限制 “`

这是demo的代码

<?php

if(!empty($_FILES)){
$file = $_FILES["img-file"];
move_uploaded_file($file["tmp_name"],"./res/".$file["name"]);//将文件流从临时存储的位置移到指定的路径
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="./file_upload.php" method="post" enctype="multipart/form-data" >
<input type="file" name="img-file" id=""><br>
<input type="submit" value="上传">
</form>
</body>
</html>


以上代码就是实现一个简单的上传功能,图片如下:



解决方法:

php.ini配置文件中的默认文件上传大小为2M, 默认upload_max_filesize =

2M,即文件上传的大小为2M,如果你想上传超过8M的文件,比如20M,你必须设定upload_max_filesize =

20M。但是光设置upload_max_filesize =

20M还是无法实现大文件的上传功能,你必须修改php.ini配置文件中的post_max_size选项,其代表允许POST的数据最大字节长度,默认为8M。如果POST数据超出限制,那么POST和_FILES将会为空。要上传大文件,你必须设定该选项值大于upload_max_filesize指令的值,我一般设定upload_max_filesize和post_max_size值相等。另外如果启用了内存限制,那么该值应当小于memory_limit选项的值。

 文件上传的其他注意事项

在上传大文件时,你会有上传速度慢的感觉,当超过一定的时间,会报脚本执行超过30秒的错误,这是因为在php.ini配置文件中max_execution_time配置选项在作怪,其表示每个脚本最大允许执行时间(秒),0

表示没有限制。你可以适当调整max_execution_time的值,不推荐设定为0。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php