程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php處理文件上傳流程及總結

php處理文件上傳流程及總結

編輯:關於PHP編程

PHP文件上傳的處理流程以及涉及到的各方面注意

HTML基礎

通過POST表單方式提交

PHP上傳步驟

  1. 客戶端通過HTTP POST方式表單提交
  2. 文件上傳後存儲在默認臨時目錄,配置php.ini屬性upload_tmp_dir和PHP運行環境變量TMPDIR可以設置臨時目錄,php語言中函數putenv設置無效
  3. 使用move_upload_file將上傳從臨時目錄移動到指定位置(如果upload_tmp_dir已經設置到指定位置就不需要此步驟)
  4. 如果表單沒有選擇上傳文件 $_FILES['userfile']['type'] == “” , $_FILES['userfile']['size']== 0

 

PHP相關全局預定義變量

  • $_POST [數組] 用來獲取表單POST方式提交的參數
  • $_FILES [數組]
    • $_FILES['userfile']['name'] 客戶端機器原名稱 userfile == input控件中的name屬性
    • $_FILES['userfile']['type'] 文件MIME類型
    • $_FILES['userfile']['size'] 已上傳文件大小(字節)
    • $_FILES['userfile']['tmp_name'] 文件被上傳後再服務端存儲的臨時文件名
    • $_FILES['userfile']['error'] 和該文件上傳相關的錯誤代碼

PHP相關函數

  • is_upload_file(string $filename) 判斷文件是否通過HTTP POST方式上傳
  • move_upload_file($file,$des) 將上傳文件移動到新位置,檢查file是合法上傳文件

參數中涉及的文件名都是絕對路徑

php.ini相關設置

  • file_uploads [boolean] 是否允許HTTP文件上傳
  • upload_max_filesize [integer]上傳文件的最大大小,默認2M
  • post_max_size [integer]POST數據允許的最大大小,此值>upload_max_filesize
  • memory_limit [integer]此值>post_max_size
  • max_input_time [integer] 上傳時間腳本執行開始計到數據全部到達服務器截至,默認60s
  • upload_tmp_dir [string] 文件上傳存放文件臨時目錄,PHP進程所有者用戶可寫權限
  • max_execution_time [integer]腳本執行時間,系統調用、sleep、數據庫查詢、文件上傳的時間不包括

錯誤信息

  • [0] UPLOAD_ERR_OK 文件上傳成功
  • [1] UPLOAD_ERR_INI_SIZE 文件上傳超過UPLOAD_MAX_SIZE
  • [2] UPLOAD_ERR_FORM_SIZE 上傳文件大小超過MAX_FILE_SIZE
  • [3] UPLOAD_ERR_PARTIAL 文件部分上傳成功
  • [4] UPLOAD_ERR_NO_FILE 沒有文件被上傳
  • [6] UPLOAD_ERR_NO_TMP_DIR 找不到臨時文件夾
  • [7] UPLOAD_ERR_CANT_WRITE 文件寫入失敗

PHP服務端上傳安全處理

  • 後綴名檢查
  • 大小限制
  • Content-Type檢查
  • 如果是圖片使用getimagesize進行文件類型檢查
  • 通過服務器分別設置應用目錄和上傳目錄訪問權限

您可能感興趣的文章

  • PHP分析文件頭信息判斷上傳文件的類型
  • php文件上傳相關配置教程
  • jquery+html+php 實現Ajax無刷新文件上傳
  • PHP判斷上傳文件類型最安全,最真實的解決辦法
  • php實現將文件批量壓縮打包下載
  • php獲取目錄所有文件並將結果保存到數組的程序
  • php判斷字符串是否全英文,純中文,中英文組合的方法
  • 強大的PHP 圖片處理類(水印、透明度、縮放、銳化、旋轉、翻轉、剪切、反色)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved