亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php實現文件上傳與下載(中)

2020-03-22 18:21:05
字體:
來源:轉載
供稿:網友
  • 出現不想讓用戶看見的信息,可以使用錯誤抑制符號@;當然能echo的東西都是可以賦值給一個變量的;

    定義用戶上傳文件類型,將其放在數組變量allowExt中,用if(!in_array(第一個參數為獲取上傳文件的后綴名,可以使用strtolower函數來判定 點號‘ .’之后的后綴名,或者也可以用自帶擴展函數pathinfo(file的名字,PATHINFO_EXTENSION)來判定,第二個參數就是允許上傳的類型的數組變量allowExt);但是這種情況下,用戶萬一上傳上來一個病毒信息,只是改了后綴名,就要用到getimagesize來獲取圖片的信息,基本信息會有圖片的寬度和高度以及類型,部分還會有channel和bits;如果允許用戶上傳的不僅僅是圖片類型,則使用flag的布爾值進行判定;

    還要注意的是用戶上傳的文件的命名,不能存在重名覆蓋現象,可以使用md5(uniqid(microtime(true),true))或類似函數進行判定;

    有的時候用戶需要上傳到自己的某個目錄下,則可以用if(!files_exit(path))進行判定,不存在就用mkdir ($path,0777,true)來自定義上傳的路徑;

    在各種判定之后,可以將這個文件封裝成一個函數,將下文中會使用到的變量設置為該函數的參數,在調用時可以傳參,在單文件多文件上傳的時候可以直接調用函數即可,大大簡化代碼量;

    單文件上傳基本思路也就是:先檢測錯誤信息,一一匹配,用switch……case輸出對應的錯誤信息------》檢測文件上傳的類型是否是自己定義的數組中的某一個-----》檢測上傳文件是否滿足規范中的大小要求----》檢測文件圖片等內容是否是真實的圖片類型等(用flag和getimagesize獲取信息)----》檢測文件是否通過http post方法傳上來的----》定義文件上傳進來的名字和路徑(此時需要檢測路徑是否存在以及同名文件是否存在,采用加密方式重命名)---》上傳成功,返回具體的數組變量或者上傳文件名。

     1 <?php 2 header('content-type:text/html;charset=utf-8'); 3  4 function upload($fileInfo,$allowExt = array('jpeg', 'jpg',  'png',  'gif', 'pdf'), $maxSize = 2097152, $path = 'text', $flag = true) 5 { 6     $fileInfo = $_FILES['file1']; 7 //     $maxSize = 2097152; // 允許上傳的最大字節數2M 8     // $flag = true; // 檢測是否真實類型 9      // 允許上傳的文件類型,直接放在參數里了 10 //    $allowExt = array(11 //         'jpeg',12 //         'png',13 //         'png',14 //         'gif',15 //         'pdf'16 //     );17     if(!is_array($allowExt)){18         exit('系統錯誤');19     }20     // 1、判斷錯誤號21     if ($fileInfo['error'] == 0) {22         // 判斷上傳文件的大小23         if ($fileInfo['size'] > $maxSize) {24             exit('上傳文件過大');25         }26         // 判斷文件類型:兩種方法--使用截取后綴名或者用自帶擴展名的判定來判定27         $ext = pathinfo($fileInfo['name'], PATHINFO_EXTENSION);28         $ext = strtolower(end(explode('.', $fileInfo['name'])));29         if (! in_array($ext, $allowExt)) {30             exit('非法文件類型');31         }32         // 判斷文件是否通過http post方式穿上的33         if (! is_uploaded_file($fileInfo['tmp_name'])) {34             exit('文件不是通過http post方法傳上來的');35         }36         if ($flag) {37             if (! getimagesize($fileInfo['tmp_name'])) {38                 exit('不是真正的圖片類型');39             }40         }41         // 上傳文件,先判定路徑是否存在,如果不存在則建立42        // $path = 'text';43         if (! file_exists($path)) {44             mkdir($path, 0777, true);45             chmod($path, 0777);46         }47         48         // 要確保文件名唯一,防止重名產生覆蓋,使用加密函數md5,mcrotime表示微秒數,兩個參數則為true;49         $uniName = md5(uniqid(microtime(true), true)) . '.' . $ext;50 //   測試是否可以加密輸出      echo $uniName;51 //         exit();52         $destination = $path . '/' . $uniName;53         if (move_uploaded_file($fileInfo['tmp_name'], $destination)) {54             // echo '上傳成功';可以不僅僅是顯示返回成功,可以返回文件的信息內容等55 //             return array(56 //                 'newName' => $destination,57 //                 'size' => $fileInfo['size'],58 //                 'type' => $fileInfo['type']59 //             );60             return $destination;61             //如果只要一個文件名,則return $destination即可62         } else {63             echo '上傳失敗';64         }65     } else {66         // 匹配錯誤信息,與err號應該一一對應的67         switch ($fileInfo['error']) {68             case 1:69                 $remindMes= '上傳文件超過了php配置文件中upload_max_filesize選項的值';70                 break;71             case 2:72                $remindMes= '上傳文件超過了表單max_file_size選項的值';73                 break;74             case 3:75                $remindMes=  '文件部分被上傳';76                 break;77             case 4:78                 $remindMes= '沒有選擇上傳文件';79                 break;80             case 6:81                 $remindMes=  '沒有找到臨時目錄';82                 break;83             case 7:84             85             case 8:86                $remindMes=  '系統錯誤';87                 break;88         }89         exit($remindMes);90     }91 }

    也是參考了別人的指點的,哦呵呵,又練練手啦……

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    亚洲天堂视频在线观看| 日韩中文字幕不卡视频| 黄色成人在线播放| 日韩在线观看高清| 欧美日韩免费在线观看| 国产精品大片wwwwww| 国产在线观看91精品一区| 91av在线网站| 久久五月天色综合| 日韩毛片在线看| 91精品久久久久久久久青青| 国产成人中文字幕| 97精品国产97久久久久久免费| 国产精品美女久久| 国产精品久久久久av免费| 日韩电影在线观看中文字幕| 91免费看国产| 国产97色在线|日韩| 在线性视频日韩欧美| 26uuu日韩精品一区二区| 国产精品v日韩精品| 91亚洲精品在线观看| 欧美视频不卡中文| 国产精品日韩在线| 亚洲综合在线做性| 久久九九免费视频| 欧洲成人在线观看| 国产精品揄拍500视频| 日韩中文字在线| 久久久久久久影视| 欧美日韩另类字幕中文| 久久精品久久久久久| 国产精品电影网站| 成人欧美在线观看| 久久综合九色九九| 国内精品久久久久伊人av| 亚洲午夜女主播在线直播| 一区国产精品视频| 亚洲一区二区三区四区在线播放| 国产剧情日韩欧美| 亚洲欧美在线第一页| 日本高清+成人网在线观看| 欧美日韩亚洲一区二区| 亚洲淫片在线视频| 久久成人18免费网站| 亚洲午夜精品久久久久久性色| 国产精品第8页| 欧美在线www| 国产精品69久久| 久久久久国产精品www| 久久99精品国产99久久6尤物| 亚洲欧洲视频在线| 亚洲人成欧美中文字幕| 欧美激情视频一区| 日韩在线视频线视频免费网站| 久久精品91久久香蕉加勒比| 日本一区二区三区四区视频| 色婷婷综合成人av| 日韩免费看的电影电视剧大全| 欧美日韩国产一中文字不卡| 91在线色戒在线| 国产日韩欧美夫妻视频在线观看| 国内偷自视频区视频综合| 日韩精品视频在线观看网址| 裸体女人亚洲精品一区| 成人免费观看49www在线观看| 国产在线视频欧美| 国产mv免费观看入口亚洲| 91精品国产色综合久久不卡98口| 亚洲欧美日韩精品久久亚洲区| 成人欧美一区二区三区在线湿哒哒| 中文字幕国产亚洲| 精品呦交小u女在线| 国产精品尤物福利片在线观看| 国产精品久久久| 日韩av最新在线观看| 亚洲自拍另类欧美丝袜| 国产精品视频久久久久| 欧美午夜美女看片| 国产精品视频在线观看| 57pao国产成人免费| www.亚洲成人| 亚洲第一精品久久忘忧草社区| 欧美国产一区二区三区| 午夜精品美女自拍福到在线| 亚洲成色777777在线观看影院| 亚洲成人激情在线| 亚洲欧美日本精品| 国产欧美一区二区三区视频| 亚洲国产成人爱av在线播放| 精品少妇v888av| 亚洲摸下面视频| 日韩成人xxxx| 91国自产精品中文字幕亚洲| 麻豆一区二区在线观看| 国产精品99久久久久久白浆小说| 国产精品电影网站| 精品日韩美女的视频高清| 亚洲精品456在线播放狼人| 日韩av在线免费观看一区| 成人在线激情视频| 国产精品av在线播放| 最近2019年手机中文字幕| 在线电影中文日韩| 国语自产偷拍精品视频偷| 欧美亚洲日本黄色| 国产视频观看一区| 国产一区二区在线免费视频| 国产91精品久久久久久久| 亚洲欧美激情四射在线日| 中文字幕av一区中文字幕天堂| 国产精品久久久久久久久影视| 国产成人在线亚洲欧美| 亚洲最大中文字幕| 九九热精品视频国产| 一区二区在线免费视频| 日本aⅴ大伊香蕉精品视频| 久久精品视频中文字幕| 欧美与欧洲交xxxx免费观看| 久久人人爽人人| 成人免费福利在线| 色爱精品视频一区| 2019最新中文字幕| 欧美国产日本在线| 欧美wwwwww| 国产91在线播放| 日韩av一区二区在线| 精品久久久久久中文字幕大豆网| 久久夜色精品亚洲噜噜国产mv| 538国产精品一区二区免费视频| 综合136福利视频在线| 亚洲激情 国产| 欧美性生交xxxxxdddd| 国产亚洲精品久久久久动| 亚洲国产中文字幕久久网| 国产精品jizz在线观看麻豆| 国产精品v日韩精品| 日韩精品中文字幕在线| 91成人在线观看国产| 久久久久一本一区二区青青蜜月| 欧美黑人一级爽快片淫片高清| 久久在线精品视频| 最近中文字幕mv在线一区二区三区四区| 国产成人精品视频| 国产精品欧美一区二区三区奶水| 日本午夜在线亚洲.国产| 久久99精品久久久久久琪琪| 国产精品久久久久av| 国产成人综合亚洲| 国产成人精品电影| 亚洲福利影片在线| 国产精品成人一区| 欧美日韩中国免费专区在线看| 国产区精品在线观看| 日韩在线一区二区三区免费视频| 日韩成人在线视频网站| 欧美激情视频网址| 国产午夜精品视频免费不卡69堂| 成人精品在线观看| 欧美日韩福利在线观看| 欧美成人自拍视频| 最近2019年手机中文字幕| 91精品久久久久久久| 日韩高清av在线|