php基礎知識(5)-檔案下傳

來源:互聯網
上載者:User
php基礎知識(5)-檔案上傳
php基礎知識-檔案上傳

範例程式碼下載頁http://xieye.iteye.com/blog/1336095

可以使使用者上傳文本和二進位檔案。用 PHP 的認證和檔案操作函數,可以完全控制允許哪些人上傳以及檔案上傳後怎樣處理。

相關的設定: 請參閱 php.ini 的 file_uploads,upload_max_filesize,upload_tmp_dirpost_max_size 以及 max_input_time 設定選項
預設情況下,php的配置允許上傳,而且檔案大小不能超過2M。

php上傳需要構建特殊表單,其實就是表單多了一個屬性 enctype="multipart/form-data",還有表單元素中多了一個file元素。
在服務端需要使用move_uploaded_file 函數,並有一個$_FILE超全域變數可用。
以下抄自php手冊
<<<
$_FILES['userfile']['name']
用戶端機器檔案的原名稱。

$_FILES['userfile']['type']
檔案的 MIME 類型,如果瀏覽器提供此資訊的話。一個例子是“image/gif”。不過此 MIME 類型在 PHP 端並不檢查,因此不要想當然認為有這個值。

$_FILES['userfile']['size']
已上傳檔案的大小,單位為位元組。

$_FILES['userfile']['tmp_name']
檔案被上傳後在服務端儲存的臨時檔案名稱。

$_FILES['userfile']['error']
和該檔案上傳相關的錯誤碼。此項目是在 PHP 4.2.0 版本中增加的。

>>>

建議1:實際應用中使用者上傳的檔案不應與程式放在同一目錄(那是個糟糕的習慣),本教程為簡單起見放到了一起。
建議2:為系統安全,總是應該給上傳檔案重新命名,如需儲存原檔案名稱,可以儲存到資料庫。
建議3:如果使用者經常會上傳檔案,則應該在某個目錄下建子目錄,如uploadfile目錄下有20120102,20120103等按天的目錄,
使用者上傳的檔案按天存放在各自的目錄中。
建議4:不建議把上傳檔案按內容存放於各自的檔案夾,除非檔案少。因為同一目錄下有太多檔案時(比如超過10000個),系統檢索速度會變慢
,無論linux還是windows。
建議5:如果建了子目錄,通常需要把路徑也存放於資料庫中。



例子1:
http://localhost/command/peixun/upload/1.php
普通的上傳檔案的代碼,上傳完之後可以到檔案夾中檢查一下是否真的上傳了。

例子2
參考來源;http://www.phpletter.com/Our-Projects/AjaxFileUpload/
使用了jquery庫和一個jquery外掛程式ajaxfileupload

測試url
http://localhost/command/peixun/upload/2.php
用js來上傳檔案,用戶端代碼變了,但服務端代碼完全不變。

代碼可下載

1.php
          longs;    echo $html;    } else {    $file = $_FILES['file1'];    $oldname = $file['tmp_name'];    $result = move_uploaded_file($oldname, $file['name']);//可以隨意替換名稱    echo $file['name'] . '上傳成功,請到當前檔案夾下去檢查';    }



2.php
                                 

Ajax檔案上傳樣本

longs; echo $html; } else { //注意:這裡是不顯示的。 $file = $_FILES['fileToUpload']; $oldname = $file['tmp_name']; $result = move_uploaded_file($oldname, $file['name']);//可以隨意替換名稱 echo '{}'; }


  • 聯繫我們

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