2011-08-20 129 views
2

嘿,我只是想知道,你如何使用PHP上傳文件直接到您的網站?例如將文件上傳到網站?

人使用瀏覽按鈕查找要上傳的文件,然後一旦選定的文件目錄中的一個文本框出現,當他們點擊「上傳」按鈕,上傳至一個目錄網站命名爲「上傳」。

有人能告訴我如何做到這一點,也許解釋一些關於或鏈接到一個資源,這將幫助我嗎?

謝謝。

+3

[PHP手冊:處理文件上傳](http://php.net/manual/en/features.file-upload.php) –

回答

1

有一個表格,把一個文件輸入它:

<form name="my_form" method="post" enctype="multipart/form-data" action="my_php_script.php"> 
    <input type="file" name="my_file" /> 
</form> 

然後在my_php_script.php,處理文件上傳就像任何其他POST請求。有關後端的詳細信息,請參見此頁面:http://www.tizag.com/phpT/fileupload.php

$_FILES陣列保存與上傳文件有關的數據。

  • $_FILES['uploadedfile']['name'] - 用戶上傳文件的原始路徑。
  • $_FILES['uploadedfile']['tmp_name'] - 駐留在服務器上的臨時文件的路徑。該文件應該存在於臨時目錄中的服務器上,並且具有臨時名稱。

您應該將文件從臨時目錄移動到更永久的存儲區(如uploads/文件夾)。您可以使用move_uploaded_file()功能,像這樣做:

move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $uploads_folder); 
+0

好吧,但你知道我會怎麼做上傳的一面嗎? –

+0

添加了附加信息 – tskuzzy

0

確保您在表單元素指定multipart/form-data,則包括文件字段。您需要在接收端執行一些額外的工作,以獲取文件數據並將其存儲爲適當的名稱,而不是服務器上的默認/臨時目錄。

<form action="/some/url" enctype="multipart/form-data" method="post"> 
    <input type="file" name="some_file" /> 
    <intput type="submit" name="Upload that file!" /> 
</form> 
0

您應該使用HTML形式enctype設置爲multipart/form-data像:

<form action="upload_file.php" method="post" enctype="multipart/form-data"> 
    <input type="file" name="thefile" /> 
</form> 

然後在PHP中,你可以檢查$_FILES['thefile']得到你想要的信息。該文件將在$_FILES['thefile']['tmpname'],你可以從那裏用move_uploaded_file()它移動到你上傳的文件到正確的文件夾:

move_uploaded_file($_FILES['thefile']['tmpname'], 'uploads/'.$_FILES['thefile']['name']); 

當然,你想要做更多的理智檢查,以確保你不覆蓋一個存在的文件並且文件成功上傳而沒有錯誤。