PHP 上傳檔案製作教學

本教學使用 PHP 製作上傳檔案的功能,可在寄送電子郵件時用於附加檔案,網頁傳送檔案的情況使用。

上傳至 upload 資料夾,若檔案已經存在、檔案超過 5MB 將出現錯誤訊息,檔案上傳後出現成功訊息。

[ 原始碼 ]

使用網頁瀏覽器測試 PHP 上傳檔案功能。

若上傳檔案發生錯誤,出現 Warning:... No such file or directory 訊息,請自行建立 upload 資料夾。

檔案已經成功上傳的畫面。

 

修改為可判斷上傳 EXE 執行檔時出現訊息,避免執行檔感染病毒造成散佈的問題。

[ 原始碼 ]

實際測試上傳 EXE 執行檔,將會出現錯誤訊息!

 

常見檔案類型及其對應的 MIME Type

檔案格式 MIME type 備註
JPG image/jpeg 圖片檔
PNG image/png 圖片檔
GIF image/gif 圖片檔
PDF application/pdf 文件檔
DOC application/msword 文件檔
DOCX application/vnd.openxmlformats-officedocument.wordprocessingml.document 文件檔
XLS application/vnd.ms-excel 試算表
XLSX application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 試算表
PPT application/vnd.ms-powerpoint 簡報檔
PPTX application/vnd.openxmlformats-officedocument.presentationml.presentation 簡報檔
TXT text/plain 文字檔
HTM text/html 網頁檔
CSS text/css 樣式表
XML text/xml  
JSON application/json  
ZIP application/zip 壓縮檔

 

修改為可支援拖曳多個檔案的上傳功能。

[ 原始碼 ]

 

使用拖曳檔案的方式上傳(支援多個檔案) PHP-Upload-DragAndUpload.txt

 

上傳圖片並儲存至資料庫 ( db_test資料庫 > tb_product資料表 > product_image欄位 ) 然後前往 upload-ok.php 網頁

原始碼 v.1 單純儲存 PNG 圖檔名稱,需要注意以下幾點:

  1. 建議將資料庫連線的密碼、使用者名稱、資料庫名稱隱藏,避免被非法獲取的問題。
    可將資料庫連線相關的資訊儲存在另一個檔案,然後在程式碼中 include 這個檔案。

  2. 將檔案名稱存入資料庫時,建議進行防 SQL injection 處理,避免受到 SQL 注入式攻擊(參考下方說明

  3. 如果使用者上傳的檔案不是 PNG 圖檔,應該提示使用者重新上傳檔案的功能,而不是未提供資訊給使用者。

原始碼 v.2 增加儲存 product_name, product_price

原始碼 v.3 增加儲存 product_price2, product_detail, product_available(選擇性練習)

 

上傳檔案時,若出現 Warning:... Unknown database 錯誤訊息代表沒有資料庫,稍後說明建立步驟。

若出現 Warning:... Access denied 錯誤訊息,代表輸入的帳號密碼錯誤,需要修改 PHP 原始碼。

建立儲存上檔檔案名稱的資料表,名稱 tb_product 欄位數暫時 2 欄。

設定資料表的欄位類型與屬性,然後按下「儲存」。

資料表結構。

 

 

上傳完成,此時若出現 找不到物件! Error 404 錯誤訊息,這是因為沒有 upload-ok.php 網頁,請再自行製作。

 

進入資料庫,確認上傳的檔案名稱已儲存到資料表。

v2

 

devl