$fileInfo = @$_FILES ['myFile'];//接收表單上傳的文件 //5個參數(shù)中,第一個是必須,后面都有默認值 upload($fileInfo,"626800",false,"imgs",array("txt")); function upload($fileInfo,$maxSize=2097152,$flag=true,$path="upload",$allowedExt=array("jpeg","jpg","png","gif")) { //$maxSize = 2 * 1024 * 1024; // 上傳文件大小限制在2M內(nèi) //$flag = true; // 判斷錯誤號 if ($fileInfo ['error'] > 0) { switch ($fileInfo ['error']) { case 1 : $mes = '上傳文件超過了PHP配置文件中upload_max_filesize選項的值'; break; case 2 : $mes = '上傳文件超過了表單MAX_FILE_SIZE限制的大小'; break; case 3 : $mes = '文件部分被上傳'; break; case 4 : $mes = '沒有選擇要上傳的文件'; break; case 6 : $mes = '沒有找到臨時目錄'; break; case 7 : case 8 : $mes = '系統(tǒng)錯誤'; break; } exit ( $mes ); } // 判斷文件類型 // $ext=strtolower(end(explode(".", $fileInfo['name']))); //得到后綴名,或者用下面的方法 $ext = pathinfo ( $fileInfo ['name'], PATHINFO_EXTENSION ); // $allowedExt = array ( // "jpeg", // "jpg", // "png", // "gif" // ); // if(!is_array($allowedExt)){ exit("文件擴展名不是數(shù)組"); } if (! in_array ( $ext, $allowedExt )) { exit ( "非法文件類型" ); } // print_r(getp_w_picpathsize($fileInfo['tmp_name']));exit; // 判斷是否是真實的圖片文件類型,如果不需要做此檢測可以設(shè)定$flag為false if ($flag) { if (! getp_w_picpathsize ( $fileInfo ['tmp_name'] )) { exit ( "上傳文件不是真實的圖片文件" ); } } // 判斷文件大小 if ($fileInfo ['size'] > $maxSize) { exit ( "上傳文件大小超過本站限制" ); } // 是否是通過POST方式上傳,需要檢測的是臨時文件 // var_dump(is_uploaded_file($fileInfo['tmp_name']));exit; if (! is_uploaded_file ( $fileInfo ['tmp_name'] )) { exit ( "非法上傳方式" ); } // 檢測完畢后移動文件 //$path = "upload"; if (! file_exists ( $path )) { mkdir ( $path, 0755, true ); chmod ( $path, 0755 ); } $uniqName=md5 ( uniqid ( microtime ( true ), true ) ) . "." . $ext; $destination = $path . "/" . $uniqName; if (! @move_uploaded_file ( $fileInfo ['tmp_name'], $destination )) { // 加上@ 是為了不顯示溢出錯誤 exit ( "文件上傳失敗" ); } echo "文件上傳成功!"; }
標題名稱:優(yōu)化后的單文件上傳函數(shù)
鏈接地址:http://muchs.cn/article8/ieghip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、面包屑導(dǎo)航、網(wǎng)站排名、微信公眾號、手機網(wǎng)站建設(shè)、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)