標籤:wamp 檔案上傳 檔案 line www ade for 資訊 strong
$_FILES 超全域數組,包含了有關上傳檔案的所有資訊!
而且,這個數組中只包含檔案相關資訊,其他資料依然在$_POST裡面。
$_FILES 是一個二維數組,每上傳一個檔案,都是數組的一個子數組。每個子數組包含資訊如下:
‘name‘ => string ‘ch05-資料庫物件.ppt‘ (上傳檔案名稱)
‘type‘ => string ‘application/vnd.ms-powerpoint‘ (上傳檔案所屬的MIME類型)
‘tmp_name‘ => string ‘E:\Tools\wamp64\tmp\phpDEC9.tmp‘ (檔案上傳後,在伺服器儲存的快取檔案地址)
‘error‘ => int 0 (出現的錯誤資訊,0表示沒有錯誤)
‘size‘ => int 836096 (上傳檔案的大小)
error常見的值:
0 沒有任何錯誤
1 超過伺服器限制大小。 php.ini檔案的upload_max_filesize;
2 超過用戶端限制大小。 表單中的隱藏欄位name="MAX_FILE_SIZE"限制的大小
3 檔案只被上傳了一部分、
4 沒有上傳檔案
var_dump($_FILES); foreach ($_FILES as $key => $value) { //取到檔案名稱,並用.分隔為數組 $nameArr = explode(".", $_FILES[$key]["name"]); //從上述數組中,取到最後一個,就是上傳檔案的尾碼名 $houzhiming = $nameArr[count($nameArr)-1]; //使用目前時間+隨機數的方式,隨機產生一個檔案名稱 $filename = date("YmdHis").rand(100,999).".".$houzhiming; // 判斷myFile裡面的臨時檔案,是不是上傳過來的。 if(is_uploaded_file($_FILES[$key]["tmp_name"])){ // 將臨時檔案,移動到伺服器www根目錄下的upload檔案夾中。 // 如果成功返回true,否則返回false $isOk = move_uploaded_file($_FILES[$key]["tmp_name"],$_SERVER[‘DOCUMENT_ROOT‘]."/upload/".$filename); if(!$isOk){ echo("檔案【{$_FILES[$key]["name"]}】上傳失敗,無法移動到指定目錄下!!"); continue; } }else{ echo("檔案【{$_FILES[$key]["name"]}】上傳的檔案不是合法上傳的!"); continue; } echo "檔案【{$_FILES[$key]["name"]}】上傳成功!!!<br>"; }
這段代碼雖然自己寫不簡單但是我們可以用現成的,所以也就是多複雜了
//檔案下載練習 $filename="./upload/aa.png"; $basename=pathinfo($filename); header("Content-Type: image/png"); //指定下載檔案類型的 header("Content-Disposition:attachment;filename=".$basename["basename"]);//指定下載檔案的描述資訊 header("Content-Length:".filesize($filename)); //指定檔案大小的 readfile($filename);//將內容輸出,以便下載。
PHP 上傳與下載