php處理檔案上傳流程及總結_PHP教程

來源:互聯網
上載者:User
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 圖片處理類(浮水印、透明度、縮放、銳利化、旋轉、翻轉、剪下、反色)

http://www.bkjia.com/PHPjc/764195.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/764195.htmlTechArticlePHP檔案上傳的處理流程以及涉及到的各方面注意 HTML基礎 通過POST表單方式提交 PHP上傳步驟 用戶端通過HTTP POST方式表單提交 檔案上傳後儲存...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.