PHP之路——大文件上傳


 修改php.ini

1.file_uploads=on/off

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

2.max_execution_time=30

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

3.upload_max_filesize=20M

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

4.upload_tmp_dir

  上傳文件臨時存放目錄

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

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

如果上傳的文件是大文件:

  1.修改php的超時時間:

    第一種方式:修改php.ini 里面max_execution_time=0(默認為30)

    第二種方式:PHP腳本內設置超時時間set_time_limit(0)

  2.修改 POST 數據所允許的最大大小

    修改php.ini 里面post_max_size的值

  3.修改上傳所允許的最大大小

    修改php.ini 里面upload_max_filesize的值

  建議:post_max_size 大於 upload_max_filesize 為佳

文件上傳成功之后需要移動到所需要的地方

  move_uploaded_file($_FILES["file"]["tmp_name"], "路徑+名稱" )

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM