PHP上傳 例項 講解
阿新 • • 發佈:2019-01-31
<?php /* * File: upload.php * Powered By Happig * Date:2012-8-30 */ header("Content-Type:text/html;charset=UTF-8 "); error_reporting(); if($_FILES['myfile']['error'] > 0) { //判斷檔案是否可以成功上傳到伺服器,0表示上傳成功 echo '上傳錯誤: '; switch ($_FILES['myfile']['error']) {case 1: echo '您這個檔案太大,我傳不上去'; //上傳檔案大小超出了PHP配置檔案中的約定值:upload_max_filesize break; case 2: echo '您這個檔案太大,我傳不上去'; //上傳檔案大小超出了表單中的約定值:MAX_FILE_SIZE break; case 3: echo '檔案上傳不完整,請重新上傳'; //檔案只有部分被上傳了 break; case 4: echo '沒有上傳任何檔案'; break; } exit; //如果$_FILES['myfile']['error']大於0都是有錯誤,輸出錯誤資訊並退出程式 } //獲取上傳檔案的MIME型別中的主型別和子型別 list($maintype,$subtype)=explode("/",$_FILES['myfile']['type']);if ($maintype=="text") { //通過主型別限制不能上傳文字檔案,例如.txt .html .php等檔案檔案 echo '問題: 不能上傳文字檔案。'; exit; //如果使用者上傳文字檔案則退出程式 } $upfile = './uploads/'.time().$_FILES['myfile']['name']; //定義上傳後的位置和新檔名 if (function_exists("iconv")){ $upfile = iconv("UTF-8","GB2312",$upfile); } if (is_uploaded_file($_FILES['myfile']['tmp_name'])) { //判斷是否為上傳檔案 if (!move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile)) { //從移動檔案 echo '問題: 不能將檔案移動到指定目錄。'; exit; } }else{ echo '客戶您好,上傳檔案出問題了,請聯絡網站程式設計師;<br/>程式設計師須知:一般情況下報這個錯,說明想要從臨時檔案轉為伺服器儲存的這個檔案不是正當途徑上傳的<br/>'; echo $_FILES['myfile']['name']; exit; } $size=$_FILES['myfile']['size']; //下邊這幾行是檔案大小又 位元組 換算為 kb M G 等單位 用一個巢狀迴圈可能更好些 if ($size>1024*1024*1024) {$size=round($size/(1024*1024*1024),2) ."G";} elseif ($size>1024*1024) {$size=round($size/(1024*1024),2) ."M";} elseif ($size>1024) {$size=round($size/1024,2) ."kb";} else {$size=$size;} echo '檔案<b>'.$_FILES['myfile']['name'].'</b>上傳成功,大小為<b>'.$size.'</b>!<br>'; //如果檔案上傳成功則輸出 檔名&檔案大小(保留兩位小數點) ?>