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

在学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。
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页