關於php的大文件上傳POST超過最大限制報錯問題

在學php的時候,作了一個簡單的上傳文件的demo,在上傳大文件的時候發現報以下的錯:
這裏寫圖片描述php

大概的意思就是:你所上傳的文件大小超過了POST的最大限制大小(8M),
如下是有道翻譯的結果警告:POST content -
length爲2110919154字節,超過了第0行未知的8388608字節的限制 「`html

這是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選項的值。web

     文件上傳的其餘注意事項svg

  • 在上傳大文件時,你會有上傳速度慢的感受,當超過必定的時間,會報腳本執行超過30秒的錯誤,這是由於在php.ini配置文件中max_execution_time配置選項在做怪,其表示每一個腳本最大容許執行時間(秒),0 表示沒有限制。你能夠適當調整max_execution_time的值,不推薦設定爲0。