程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php 文件上傳函數 move_uploaded_file

php 文件上傳函數 move_uploaded_file

編輯:關於PHP編程

上傳文件
允許用戶上傳文件是必要的,許多網站,所以,我們如何做到這一點,正是?但話又說回來,有一些方便的書面文件上。審議了麻煩呢?那麼,這裡的一些幫助是稍微更容易消化。

首先,您需要HTML網頁的形式將謊言。這種形式必須確定文件最大規模的上傳,並必須有文件上傳領域本身

<form enctype="multipart/form-data" action="upload.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />     <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>

MAX_FILE_SIZE界定的盡可能多的文件大小,以字節為單位,當然。名稱屬性上傳領域(指定的檔案價值的type屬性)的重要組成部分,正如我們稍後將使用此在我們的腳本來知道哪些要上傳的文件(這是用來支持多種上傳) 。
下一步,我們要上傳文件。但首先,重要的是要理解美元_FILE [ ]數組。

在美元_FILE [ ]數組,有一個項目,每一個領域中上傳的形式發送用戶此腳本。因此,在我們的案例,有一個指數命名為' userfield ' ,為一個外地與這個名字在我們的形式。每個值的數組也是一個關聯數組,以下項和值(改寫明確從文件) :

<?php
$target_file = &apos;/path/to/upload/&apos;.basename($_FILES[&apos;userfile&apos;][&apos;name&apos;]);
?>
關鍵價值
'名稱'文件名使用客戶的計算機。
'型'的MIME類型的文件(如圖像/ gif格式) 。該浏覽器並不總是提供這方面的,和價值不應假定是正確的。
'大小'的大小上傳的文件(以字節為單位) 。
' tmp_name '的文件給上傳的文件,其中應立即轉移,並更名後的成功上傳。地點是無關緊要的,因為你使用的方法把文件( move_uploaded_file ,我使用後)都知道的位置。
'錯誤'的錯誤代碼(或成功的代碼,如果0 )的問題發生在上傳。 (錯誤代碼)

表1 :簡要介紹了鑰匙和價值觀

所以,現在我們可以開始進行業務。首先,我們得到的文件名,我們將想給上傳的文件,而且目錄,我們希望把它。


<?php
$target_file = &apos;/path/to/upload/&apos;.basename($_FILES[&apos;userfile&apos;][&apos;name&apos;]);
?>

使用basename是絕對必要的。沒有這一點,您正在運行一個巨大的安全風險。如果用戶要上傳文件的名稱,開始使用相對路徑上升,如../../../, ,他們最終將得到根除,可以隨時隨地浏覽到的文件的落實更多的目錄後,原來的起點的道路。

警告:這是非常重要的是,可以確保服務器的權限寫信給這個目錄。如果您的服務器正在運行的任何發行版的Linux或Mac OS X ,您可能會需要屬性的目錄。
下一步,您只需將上傳的文件為target_file 。我認為這樣做的,如果為了試驗的成功。

<?php
if (move_uploaded_file($_FILES[&apos;userfile&apos;][&apos;tmp_name&apos;], $target_file)) {
 // Succeeded
 echo &apos;Yay!&apos;;
} else {
 // Failed
 echo &apos;No!&apos;;
}
?>


這真的就是這麼回事。很簡單,啊?您可以展開這一點,通過閱讀PHP的文件序列和unserializing對象。如果您有任何疑問,可隨時張貼的論壇。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved