php檔案上傳中會用到
$_FILES系統函數
一、$_FILES系統函數
PHP程式設計語言中的常見的$_FILES系統函數用法有:
$_FILES['myFile']['name'] 顯示用戶端檔案的原名稱。
$_FILES['myFile']['type'] 檔案的 MIME 類型,例如"image/gif"。
$_FILES['myFile']['size'] 已上傳檔案的大小,單位為位元組。
$_FILES['myFile']['tmp_name'] 儲存的臨時檔案名稱,一般是系統預設。
二、常見函數
PHP程式設計語言中的常見的$_FILES系統函數用法有:
$_FILES['myFile']['name'] 顯示用戶端檔案的原名稱。
$_FILES['myFile']['type'] 檔案的 MIME 類型,例如"image/gif"。
$_FILES['myFile']['size'] 已上傳檔案的大小,單位為位元組。
$_FILES['myFile']['tmp_name'] 儲存的臨時檔案名稱,一般是系統預設。
$_FILES['myFile']['error'] 該檔案上傳相關的錯誤碼。以下為不同代碼代表的意思:
0; 檔案上傳成功。
1; 超過了檔案大小php.ini中即系統設定的大小。
2; 超過了檔案大小MAX_FILE_SIZE 選項指定的值。
3; 檔案只有部分被上傳。
4; 沒有檔案被上傳。
5; 上傳檔案大小為0。
三、php檔案上傳
通過form上傳檔案,首先需要標記
php代碼如下:
$cover_pic, 'store_name'=>$store_name, 'tel_number'=>$tel_number, 'ad_words'=>$ad_words, 'store_introduce'=>$store_introduce, 'qq_number'=>$qq_number ); updatetable(tname('open_member_weixin_ap'),$setarr,array('apid'=>$_COOKIE['apid'],'id'=>$_COOKIE['id'])); $smarty->assign('loginuser',$_COOKIE['loginuser']); $smarty->display('setting.dwt'); exit();}gourl('binding.php');function upload_store_pic(){ //檔案儲存路徑 $save_path = './uploads/store_pic/'; if (!file_exists($save_path)) { mkdir($save_path); } //定義允許上傳的副檔名 $ext_arr = array( 'image' => array('gif', 'jpg', 'jpeg', 'png', 'bmp') ); //最大檔案大小 $max_size = 1000000; //PHP上傳失敗 if (!empty($_FILES['img_file']['error'])) { switch($_FILES['img_file']['error']){ case '1': $error = '超過php.ini允許的大小。'; break; case '2': $error = '超過表單允許的大小。'; break; case '3': $error = '圖片只有部分被上傳。'; break; case '4': $error = '請選擇圖片。'; break; case '6': $error = '找不到臨時目錄。'; break; case '7': $error = '寫檔案到硬碟出錯。'; break; default: $error = '未知錯誤。'; } showmessage($error); return ''; } //有上傳檔案時 if (empty($_FILES) === false) { //原檔案名稱 $file_name = $_FILES['img_file']['name']; //伺服器上臨時檔案名稱 $tmp_name = $_FILES['img_file']['tmp_name']; //檔案大小 $file_size = $_FILES['img_file']['size']; //檢查檔案名稱 if (!$file_name) { showmessage("請選擇檔案。"); return ''; } //檢查目錄 if (@is_dir($save_path) === false) { showmessage("上傳目錄不存在。"); return ''; } //檢查目錄寫入權限 if (@is_writable($save_path) === false) { showmessage("上傳目錄沒有寫入權限。"); return ''; } //檢查是否已上傳 if (@is_uploaded_file($tmp_name) === false) { showmessage("上傳失敗。"); return ''; } //檢查檔案大小 if ($file_size > $max_size) { showmessage("上傳檔案大小超過限制。"); return ''; } //檢查目錄名 $dir_name = empty($_GET['dir']) ? 'image' : trim($_GET['dir']); if (empty($ext_arr[$dir_name])) { showmessage("目錄名不正確。"); return ''; } //獲得副檔名 $temp_arr = explode(".", $file_name); $file_ext = array_pop($temp_arr); $file_ext = trim($file_ext); $file_ext = strtolower($file_ext); //檢查副檔名 if (in_array($file_ext, $ext_arr[$dir_name]) === false) { showmessage("上傳副檔名是不允許的副檔名。"); return ''; } //新檔案名稱 $new_file_name = date("YmdHis") . '_' . rand(10000, 99999) . '_apid_' . $_COOKIE['apid'] . '.' . $file_ext; //移動檔案 $file_path = $save_path . $new_file_name; if (move_uploaded_file($tmp_name, $file_path) === false) { showmessage("上傳檔案失敗。"); return ''; } @chmod($file_path, 0777); return $file_path; }else{ return ''; }}