一個非常有用的方面, PHP是有能力管理檔案上傳到你的伺服器。允許使用者上傳檔案到您的伺服器開啟了一個整體的蠕蟲,所以請小心有利的檔案上傳。
PHP的-檔案上傳: H TML表單
在您可以使用PHP來管理您的上傳,您必須先建立一個HTML表單,讓使用者選擇要上傳的檔案。看到我們的HTML表單的教訓進行更深入的研究形式。
<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
www.111cn.net/phper/php.html
這是一個簡短說明的重要組成部分,上面的代碼:
是enctype = “ multipart /形式的資料” -要為我們將要建立的P HP檔案的正常工作。
行動= “ uploader.php ” -的名字我們的P HP頁面,將建立不久。
方法= “郵報” -通知瀏覽器,我們希望將資訊發送到該伺服器後使用。
輸入類型= “隱藏”名稱= “馬... -集允許的最大檔案大小,以位元組為單位,可以上傳。這種安全機制是很容易繞過,我們將顯示了堅實的備份解決方案在P HP。我們已定下檔案大小上限100KB為止在這個例子。
輸入名稱= “ uploadedfile ” -u ploadedfile是我們將如何存取檔案在我們的P HP指令碼。
儲存這種形式的代碼到檔案中,並呼籲它upload.html 。如果您認為它在瀏覽器中它看起來應該如下:
顯示:
選擇要上傳的檔案:
之後,使用者點擊提交,資料將張貼到伺服器和使用者將被重新導向到uploader.php 。此PHP檔案會的形式進程的資料和做的所有工作。
PHP的-檔案上傳:什麼是P HP的怎麼辦?
現在,我們有權利HTML表單中我們可以開始代碼的PHP指令碼是要處理我們的上傳。通常情況下, PHP檔案應當作出重要決定,所有上傳:保留檔案或扔掉。檔案可能是從扔掉的原因很多,其中包括:
該檔案過大,你不想把它在您的伺服器上。
你想的人上傳圖片並上傳別的,像一個可執行檔( 。 exe ) 。
有問題的檔案上傳,因此你不能保持。
這個例子非常簡單,忽略了代碼,將增加這種功能。
PHP的-檔案上傳: u ploader.php
當uploader.php檔案執行,上傳的檔案存在於一個臨時儲存地區的伺服器上。如果該檔案不是轉移到不同的位置將被摧毀!為了節省寶貴的檔案我們將要使用的變數$ _FILES關聯陣列。
通過$ _FILES數組PHP在哪裡商店的所有資訊檔案。有兩個因素這陣,我們需要瞭解這個例子。www.111cn.net/phper/php.html
uploadedfile -u ploadedfile是參考,我們在我們指定的H TML表單。我們將需要此通知通過$ _FILES陣列的檔案,我們要玩。
變數$ _FILES [ ' uploadedfile ' ] [ '名稱' ] -名稱包含原始路徑的使用者上傳檔案。
變數$ _FILES [ ' uploadedfile ' ] [ ' tmp_name ' ] -t mp_name包含的路徑,臨時檔案存放在伺服器上。該檔案應該存在於伺服器的一個臨時目錄的臨時名稱。
現在,我們終於可以開始撰寫一個基本的PHP指令碼上傳經理!以下是我們如何將獲得的臨時檔案名稱,選擇一個永久性的名稱,並選擇一個地方來存放檔案。
// Where the file is going to be placed
$target_path = "uploads/";
/* Add the original filename to our target path.
Result is "uploads/filename.extension" */
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
PHP的-檔案上傳: m ove_uploaded_file函數
現在,所有我們必須做的是調用move_uploaded_file功能,讓PHP的盡自己的魔術。 move_uploaded_file職能的需要知道1 )道路的臨時檔案(檢查! ) 2 )路徑,它是轉移到(檢查! ) 。
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
轉載請註明: www.111cn.net/phper/php.html