PHP開發劄記系列(八)- 上傳與下載

來源:互聯網
上載者:User
PHP開發筆記系列(八)- 上傳與下載

??? 最近由於項目需要,在GZBGY進行了閉關,與同行的Developer進行了深入的交流,成果不賴。丟下了《PHP開發筆記系列(XAMPP+PhpEclipse+XDebug)》,今天重新更新一下,這次講上傳下載。

?

??? 上傳與下載兩個功能是再正常不過的準系統,在java的開發中,下載會使用File類將檔案內容以流的形式寫入到response中,並設定相應和http header,讓瀏覽器識別本次是檔案下載。在PHP中也是類似,本文《PHP開發筆記系列(八)- 上傳與下載》將是《PHP開發筆記系列(XAMPP+PhpEclipse+XDebug)》的第八篇,講述如何使用PHP完成檔案的上傳與下載操作。


??? 1. 檔案下載

??? 檔案下載的操作分為兩部分,步驟:1)設定http header,2)讀取檔案。這裡我們編寫兩個php指令碼,第一個為file-list.php,用來顯示當前檔案夾下的所有檔案夾和檔案,供下載,第二個為download.php,具體的下載代碼。代碼如下:

?

file:file-list.phpurl:http://localhost:88/download-upload/file-list.php';        }elseif (is_file($entry))        {            echo '[FILE] '.$entry. '
'; } } closedir($dp); echo "upload";?>
?

?

file:download.phpurl:http://localhost:88/download-upload/download.php?filename=xxx
?

??? 2. 檔案上傳

??? 在PHP中,檔案上傳非常簡單,因為php已經自動識別enctype為"multipart/form-data"的請求,自動將裡面的檔案域中的內容upload到php的tmp檔案夾中,我們可以過$_FILES["檔案網域名稱稱"]["屬性"],如$_FILES["file"]["name"]表示上傳檔案的原始名稱、$_FILES["file"]["type"]表示上傳檔案的類型、$_FILES["file"]["tmp_name"]表示上傳檔案在php臨時檔案夾中的路徑。由於產生的臨時檔案會被清空,因此我們需要使用move_uploaded_file()函數將臨時檔案移動到我們的指定目錄中,其中第一個參數為臨時檔案的路徑,第二個參數為目標檔案的路徑。代碼如下:

?

file:upload-form.phpurl:http://localhost:88/download-upload/upload-form.php
?

?

file:upload.phpurl:http://localhost:88/download-upload/upload.php 0){    echo "Error: ".$_FILES["file"]["error"] . "
";}else{ echo "Upload: ".$_FILES["file"]["name"]."
"; echo "Type: ".$_FILES["file"]["type"]."
"; echo "Size: ".($_FILES["file"]["size"] / 1024)." Kb
"; echo "Temp file: ".$_FILES["file"]["tmp_name"]."
"; move_uploaded_file($_FILES["file"]["tmp_name"], $_FILES["file"]["name"]); echo "file-list";}?>
?

?? 本文地址:http://ryan-d.iteye.com/blog/1546706

?

?

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.