PHP 上傳與下載

來源:互聯網
上載者:User

標籤:wamp   檔案上傳   檔案   line   www   ade   for   資訊   strong   

1 upload

    $_FILES 超全域數組,包含了有關上傳檔案的所有資訊!
    而且,這個數組中只包含檔案相關資訊,其他資料依然在$_POST裡面。
      $_FILES 是一個二維數組,每上傳一個檔案,都是數組的一個子數組。每個子數組包含資訊如下:
      ‘name‘ => string ‘ch05-資料庫物件.ppt‘ (上傳檔案名稱)
      ‘type‘ => string ‘application/vnd.ms-powerpoint‘ (上傳檔案所屬的MIME類型)
      ‘tmp_name‘ => string ‘E:\Tools\wamp64\tmp\phpDEC9.tmp‘ (檔案上傳後,在伺服器儲存的快取檔案地址)
      ‘error‘ => int 0 (出現的錯誤資訊,0表示沒有錯誤)
      ‘size‘ => int 836096 (上傳檔案的大小)
   
      error常見的值:
      0 沒有任何錯誤
      1 超過伺服器限制大小。  php.ini檔案的upload_max_filesize;
      2 超過用戶端限制大小。 表單中的隱藏欄位name="MAX_FILE_SIZE"限制的大小
      3 檔案只被上傳了一部分、
      4 沒有上傳檔案

    var_dump($_FILES);        foreach ($_FILES as $key => $value) {        //取到檔案名稱,並用.分隔為數組        $nameArr = explode(".", $_FILES[$key]["name"]);        //從上述數組中,取到最後一個,就是上傳檔案的尾碼名        $houzhiming = $nameArr[count($nameArr)-1];        //使用目前時間+隨機數的方式,隨機產生一個檔案名稱        $filename = date("YmdHis").rand(100,999).".".$houzhiming;        // 判斷myFile裡面的臨時檔案,是不是上傳過來的。        if(is_uploaded_file($_FILES[$key]["tmp_name"])){            // 將臨時檔案,移動到伺服器www根目錄下的upload檔案夾中。            // 如果成功返回true,否則返回false            $isOk = move_uploaded_file($_FILES[$key]["tmp_name"],$_SERVER[‘DOCUMENT_ROOT‘]."/upload/".$filename);            if(!$isOk){                echo("檔案【{$_FILES[$key]["name"]}】上傳失敗,無法移動到指定目錄下!!");                continue;            }        }else{            echo("檔案【{$_FILES[$key]["name"]}】上傳的檔案不是合法上傳的!");            continue;        }                echo "檔案【{$_FILES[$key]["name"]}】上傳成功!!!<br>";    }

 

2 download

   這段代碼雖然自己寫不簡單但是我們可以用現成的,所以也就是多複雜了

    //檔案下載練習    $filename="./upload/aa.png";    $basename=pathinfo($filename);    header("Content-Type: image/png"); //指定下載檔案類型的    header("Content-Disposition:attachment;filename=".$basename["basename"]);//指定下載檔案的描述資訊    header("Content-Length:".filesize($filename));  //指定檔案大小的    readfile($filename);//將內容輸出,以便下載。

 

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.