php部分---單檔案上傳的封裝類

來源:互聯網
上載者:User

標籤:--   伺服器   bre   return   info   load   exp   move   選項   

<?php$fileinfo=$_FILES["myfile"];function uploadfile($fileinfo,$allowext=array(‘jpeg‘,‘jpg‘,‘pnd‘,‘gif‘,‘wbmp‘),$flag=true,$maxsize=2097152){//判斷錯誤資訊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= "系統錯誤";            break;                        }        exit($mes);    }//判斷上傳檔案類型是不是在規定類型中    $allowext=array(‘jpeg‘,‘jpg‘,‘pnd‘,‘gif‘,‘wbmp‘);   //定義一下允許的上傳檔案類型    $ext=strtolower(end(explode(‘,‘,$fileinfo[‘name‘])));//截取上傳副檔名    if(!in_array($ext,$allowext))    // 判斷上傳檔案的副檔名是不是在定義類型中    {         exit(‘非法檔案類型‘);            }//判斷上傳檔案大小    $maxsize=2097152;         //寫最大的位元組數,自己算    if($fileinfo[‘size‘]>$maxsize)    {        exit(‘上傳檔案過大‘);        }        //判斷檔案是否是通過HTTP POST方式上傳上來的    if(!is_uploaded_file($fileinfo[‘tmp_name‘]))    {        exit(‘檔案不是通過HTTP POST方式上傳上來的‘);        }        //檢測是否為真實的圖片類型,而不是認為改動的    $flag=true;    if($flag)    {        if(!getimagesize($fileinfo[‘tmp_name‘]))        {            echo "不是真實的圖片類型";            }        }        //判斷伺服器上儲存的檔案夾在不在$path=‘uploads‘;  //伺服器上隱藏檔的檔案名稱    if(!file_exists($path))    {        mkdir($path,0777,true);//不存在就建立一個目錄        chmod($path,0777);//加一個許可權                }$uniname=md5(uniqid(microtime(true),true)).‘.‘.$ext;   //通過MD5加密等措施給檔案名稱取名,產生唯一檔案名        $destination=$path.‘/‘.$uniname;    if(!move_uploaded_file($fileinfo[‘tmp_name‘],$destination)) //上傳檔案    {        echo "檔案上傳失敗";        }        return array(        ‘newname‘=>$destination,    ‘size‘=>$fileinfo[‘size‘],    ‘type‘=>$fileinfo[‘type‘]            );                }

 

php部分---單檔案上傳的封裝類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.