我們在開發網站的時候,經常會遇到需要制作檔案上傳功能,下面我們就為大家介紹一下php制作檔案上傳功能的詳細步驟。
第一步:建立一個檔案上傳表單
允許使用者從表單上傳檔案是非常有用的。
請看下面這個供上傳檔案的 HTML 表單:

請留意如下有關此表單的資訊:
标簽的 enctype 屬性規定了在送出表單時要使用哪種内容類型。在表單需要二進制資料時,比如檔案内容,請使用 "multipart/form-data"。
标簽的 type="file" 屬性規定了應該把輸入作為檔案來處理。舉例來說,當在浏覽器中預覽時,會看到輸入框旁邊有一個浏覽按鈕。
注釋:允許使用者上傳檔案是一個巨大的安全風險。請僅僅允許可信的使用者執行檔案上傳操作。
第二步:建立上傳腳本
"upload_file.php" 檔案含有供上傳檔案的代碼:
通過使用 PHP 的全局數組 $_FILES,你可以從客戶計算機向遠端伺服器上傳檔案。
第一個參數是表單的 input name,第二個下标可以是 "name", "type", "size", "tmp_name" 或 "error"。就像這樣:
●$_FILES"file" - 被上傳檔案的名稱
●$_FILES"file" - 被上傳檔案的類型
●$_FILES"file" - 被上傳檔案的大小,以位元組計
●$_FILES"file" - 存儲在伺服器的檔案的臨時副本的名稱
●$_FILES"file" - 由檔案上傳導緻的錯誤代碼
這是一種非常簡單檔案上傳方式。基于安全方面的考慮,您應當增加有關什麼使用者有權上傳檔案的限制。
第三步:上傳限制
在這個腳本中,我們增加了對檔案上傳的限制。使用者隻能上傳 .gif 或 .jpeg 檔案,檔案大小必須小于 20 kb:
注釋:對于 IE,識别 jpg 檔案的類型必須是 pjpeg,對于 FireFox,必須是 jpeg。
第四步:儲存被上傳的檔案
上面的例子在伺服器的 PHP 臨時檔案夾建立了一個被上傳檔案的臨時副本。
這個臨時的複制檔案會在腳本結束時消失。要儲存被上傳的檔案,我們需要把它拷貝到另外的位置:
<?php
if ((($_FILES"file" == "image/gif")
|| ($_FILES"file" == "image/jpeg")
|| ($_FILES"file" == "image/pjpeg"))
&& ($_FILES"file" < 20000))
{
if ($_FILES"file" > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
echo "Invalid file";
?>
上面的腳本檢測了是否已存在此檔案,如果不存在,則把檔案拷貝到指定的檔案夾。
注釋:這個例子把檔案儲存到了名為 "upload" 的新檔案夾。
以上就是php檔案上傳步驟的詳細内容,更多請關注php交流群:
link