首頁 >頭條 > 正文

PHP實現文件分片上傳的方法

轉載2020-01-17 17:35:1401218
第11期線上培訓班

PHP用超級全局變量數組$_FILES來記錄文件上傳相關信息的。

1.file_uploads=on/off

是否允許通過http方式上傳文件

2.max_execution_time=30

允許腳本最大執行時間,超過這個時間就會報錯

3.memory_limit=50M

設置腳本可以分配的最大內存量,防止失控腳本占用過多內存,此指令只有在編譯時設置了。

--enable-memory-limit標志的情況下才生效

4.upload_max_filesize=20M

允許上傳文件的最大大小,此指令必須小于post_max_size

5.upload_tmp_dir

上傳文件臨時存放目錄

6.post_max_size=30M

允許post方式可以接受最大大小

$_FILES['myFile']['name'] 客戶端上次文件的原始名稱。

$_FILES['myFile']['type'] 文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如"image/gif"。

$_FILES['myFile']['size'] 已上傳文件的大小,單位為字節。

$_FILES['myFile']['tmp_name'] 文件被上傳后在服務端儲存的臨時文件名,一般是系統默認。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函數設置是不起作用的。

$_FILES['myFile']['error'] 和該文件上傳相關的狀態碼。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的說明:(它們在PHP3.0以后成了常量)

UPLOAD_ERR_OK

值:0; 沒有錯誤發生,文件上傳成功。

UPLOAD_ERR_INI_SIZE

值:1; 上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值。

UPLOAD_ERR_FORM_SIZE

值:2; 上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。

UPLOAD_ERR_PARTIAL

值:3; 文件只有部分被上傳。

UPLOAD_ERR_NO_FILE

值:4; 沒有文件被上傳。

值:5; 上傳文件大小為0.

文件被上傳結束后,默認地被存儲在了臨時目錄中,這時您必須將它從臨時目錄中刪除或移動到其它地方,如果沒有,則會被刪除。

也就是不管是否上傳成功,腳本執行完后臨時目錄里的文件肯定會被刪除。

附:修改PHP上傳文件大小限制的方法

1. 一般的文件上傳,除非文件很小。就像一個5M的文件,很可能要超過一分鐘才能上傳完。

但在php中,默認的該頁最久執行時間為 30 秒.就是說超過30秒,該腳本就停止執行.

這就導致出現無法打開網頁的情況,這時我們可以修改 max_execution_time

在php.ini里查找

max_execution_time

默認是30秒.改為

max_execution_time = 0

0表示沒有限制

2. 修改 post_max_size 設定 POST 數據所允許的最大大小。此設定也影響到文件上傳。

php默認的post_max_size 為2M.如果 POST 數據尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便會為空.

查找 post_max_size .改為

post_max_size = 150M

3. 很多人都會改了第二步,但上傳文件時最大仍然為 8M。

為什么呢.我們還要改一個參數upload_max_filesize 表示所上傳的文件的最大大小。

查找upload_max_filesize,默認為8M改為

upload_max_filesize = 100M

另外要說明的是,post_max_size 大于 upload_max_filesize 為佳.

上傳效果展示:

fecf965dd5587b69f3df0cedef6bc5b.png

PHP中文網,有大量免費的PHP視頻教程,歡迎大家學習!

本文轉自:https://www.jianshu.com/p/6460dc947209

php中文網最新課程二維碼
  • 相關標簽:PHP 文件 分片上傳
  • 本文轉載于:簡書,如有侵犯,請聯系[email protected]刪除
  • 相關文章

    相關視頻


    網友評論

    文明上網理性發言,請遵守 新聞評論服務協議

    我要評論
  • 專題推薦

    推薦視頻教程
  • 最新PHP面試視頻教程最新PHP面試視頻教程
  • PHP語言經典入門教程(2018)PHP語言經典入門教程(2018)
  • [公益直播]PHP實戰開發極速入門[公益直播]PHP實戰開發極速入門
  • PHP零基礎視頻教程PHP零基礎視頻教程
  • 視頻教程分類
    118期四肖中特唯一