天天看點

上傳、下載下傳

1、上傳、下載下傳思路

一、上傳思路

寫上傳頁面  

在form表單中加enctype=”multipart/form-data”屬性,把表單送出方式設定為post

送出表單後,表單處理頁面會生成$_FILES超級全局變量數組

用move_uploaded_file()函數 把上傳檔案移動到伺服器的目标目錄中

上傳成功顯示成功 失敗顯示失敗   

二、上傳原理:用戶端發送檔案到伺服器,伺服器将檔案放到臨時目錄,用move_uploaded_file()函數将檔案放到伺服器指定目錄中

三、下載下傳思路

在清單中點要下載下傳的檔案  

到下載下傳的php檔案接收檔案名  

寫入檔案的類型

激活一個下載下傳的視窗

讀檔案

//接收檔案路徑

$path = $_GET['path'];

$filename = substr($path,strrpos($path,"/")+1);

//檔案類型

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

//激活一個下載下傳的視窗  (檔案名)

header("Content-Disposition: attachment; filename=$filename");

//讀檔案

readfile($path);

補充内容:

設定php配置檔案中的指定,用于精細的調節php的檔案上傳功能。

file_uploads=on

确定伺服器上的php腳本是否可以接受http檔案上傳

Memory_limit:   128M

設定腳本可以配置設定的最大記憶體量,防止失控的腳本獨占伺服器記憶體。

Upload_max_filesize:限制php處理上傳檔案大小的最大值 2M

Post_max_size:限制通過post方法可以接受資訊的最大值。 8M

Upload_tmp_dir:上傳檔案存放的臨時路徑

$_FILES多元數組:用于存儲各種與檔案上傳有關資訊

$_FILES[‘myfile’][‘name’]:源檔案名包括擴充名

$_FILES[‘myfile’][‘size’]:已上傳檔案的大小

$_FILES[‘myfile’][‘tmp_name’]:上傳檔案的臨時檔案名

$_FILES[‘myfile’][‘type’]:上傳檔案的類型

$_FILES[‘myfile’][‘error’]:伴随檔案上傳時産生的錯誤資訊

0:沒有任何錯誤

1:上傳檔案的大小超出了在php配置檔案中Upload_max_filesize設定的最大值 

2:表示上傳檔案大小超出了html表單中MAX__FILE__SIZE選項所指定的值

3:表示檔案隻被部分上傳                    

4表示沒有上載任何檔案

檔案上傳的原理:

用戶端将檔案送出上傳,伺服器端先将檔案移動到臨時檔案夾裡,再移動到伺服器端檔案夾中 

實作步驟: 

① 設定表單,method必須是post方式,還要給表單加一個上傳表示:enctype="multipart/form-data"  

② 送出到伺服器中去用一個全局數組來接收:$_FILES

$_FILES[‘myfile’][‘error’]:伴随檔案上傳時産生的錯誤資訊 

③ 将檔案從臨時檔案夾裡移動到伺服器端檔案夾裡

//擷取臨時檔案所在的路徑資訊

$file_name=$_FILES['myfile']['tmp_name'];

//擷取上傳後的檔案名

$path="./img/".$_FILES['myfile']['name'];

//移動檔案 move_uploaded_file(臨時檔案夾的路徑,伺服器端檔案夾)

if(move_uploaded_file($file_name,$path)){

echo "成功";

}else{

echo "失敗";

}

      本文轉自噼裡啪啦啦 51CTO部落格,原文連結:http://blog.51cto.com/pilipala/1670692,如需轉載請自行聯系原作者