PHP中文件上傳與文件下載

文件上傳

上傳原理

將本地的文件複製一份傳送到網絡的服務器中儲存

 

Ø 通過瀏覽器選擇本地文件

Ø 通過互聯網傳送到網絡服務器中的臨時目錄

(系統的臨時目錄temp格式,其實就是垃圾目錄,爲了防止病毒,系統會自動將上傳的文件隨機改名後綴爲.tmp。這個文件是不可以運行的文件,當提交的php腳本運行結束後,如果沒有移動走該臨時文件,那麼系統的臨時文件就會自動刪除該文件)

Ø 如果上傳到臨時目錄中沒有出錯,則把文件從臨時目錄中移動到www目錄下將其改好名字。即爲實現文件的上傳

 

 

上傳需注意

Ø HTML表單部分

上傳文件時,傳輸方式必須問post方式

需要指定表單輸出編碼格式:enctype="multipart/form-data"

 

Ø PHP頁面部分

如果是文件上傳,那麼上傳的文件在php腳本中不能用$_POST來接受, 必須要用$_FILES來接受,其他內容依然用$_POST來接受

 

Ø PHP配置文件相關的選項

 upload_max_filesize = 2M  允許上傳文件大小的最大值設置

 file_uploads = On  允許文件上傳的設置

 upload_tmp_dir ="c:/wamp64/tmp" 文件上傳的臨時目錄的設置

 max_file_uploads = 20 允許最大上傳文件個數的設置

 post_max_size = 8M  post最大傳輸內容的最大值設置

注意:upload_max_filesize 設置的值不允許超過post_max_size設置的值

 

 

上傳中需考慮

Ø 判斷是否上傳成功,判斷錯誤號,是否從客戶端上傳到系統臨時目錄過程中成功

Ø 判斷上傳文件的類型是否符合要求

Ø 判斷上傳文件的大小時候符合要求

Ø 創建上傳成功後保存的目錄

Ø 上傳上來的圖片不能重名  重新命名

Ø 移動文件(從系統臨時文件目錄中移動到指定的目錄中並且圖片要求重命名)

 

上傳到臨時系統文件中錯誤號

可查看手冊post上傳方法來整理

文件的類型:可查看MIME類型

 

文件移動時:

move_uploaded_file() 將長傳的文件移動到新位置

@param1 原路徑

@param2 需要移動的路徑

返回值:成功返回true 失敗返回false

 

die(); break;

函數中不要用以上兩位函數,用return代替

文件下載

就是將服務器中的文件複製一份保存到本地即爲下載

 

Ø 下載需要的三行代碼

//聲明要下載文件的類型

header('Content-type: image/jpeg');

//對下載文件進行描述並且制定下載文件的名稱

header('Content-Disposition:attachment;filename="下載文件的名稱.jpg");

//讀取需要下載的文件

readfile('./文件目錄/文件名.後綴');

 

Ø IE瀏覽器中編碼問題

iconv();  字符集按要求的字符編碼來轉換

@param1 原字符集

@param2 需要轉換成那種字符集

@param3 那個字符串需要轉換

返回值:返回轉換後的字符串 失敗返回false

 

Ø 設置頁面字符集

header('Content-type:text/html;charset=utf-8');

使用header做條件注意:

儘量不要在header前面輸出有輸出不會報錯,但是儘量不要這麼做,因爲不符合常理,在php版本小於5.3之前不允許header前面有輸出

注意:header的功能有很多需要一一瞭解

header跳轉

header('location:需要跳轉的路徑');

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章