2011-07-13 129 views
0

我正在建立一個簡單的文件上傳功能。上傳的文件應該存放到「上傳」文件夾中。但他們不會進入文件夾。任何幫助?PHP文件上傳

下面是代碼:

<?php 

include("connect.php"); 
$file_name = trim($_POST['file_name']); 
$file_size = $_FILES['size']; 
$file_type = $_FILES['type']; 
$description = trim($_POST['description']); 
$date_entered = trim($_POST['date_entered']); 

$query = "INSERT INTO uploads (id, file_name, file_size, file_type, description, date_entered) 
VALUES ('', '$file_name', '$file_size', '$file_type', '$description', '$date_entered')"; 
$results = mysql_query($query); 

if ($results) 
{ 
    echo "Details added."; 

    move_uploaded_file($_FILES[$file_name]['tmp_name'], "uploads/$id"); 
} 

mysql_close(); 
?> 
+0

請使用正確的格式和格式良好的代碼。當你不使用任何語法突出顯示或將所有代碼放在同一行時,你就會讓人們想要傷害你而不是幫助你。 – AlicanC

+0

你有PHP錯誤嗎? –

回答

1

更改move_uploaded_file調用此:

move_uploaded_file($_FILES['file_name']['tmp_name'], "uploads/$id"); 

還要確保該文件夾uploads/是由Web服務器用戶可寫的。這通常通過使用SSH或FTP中的chmod將權限設置爲0777來完成。

+0

謝謝。我剛剛做到了。 「確保上傳/文件夾可由Web服務器用戶寫入」是什麼意思? – dcck

+0

PHP通常以與Web服務器相同的用戶身份運行,或者至少是一些其他用戶,而不是您自己。因此,您必須使用您的FTP程序爲其提供特定的寫入權限。如果您有自己的服務器,請通過SSH使用chmod命令。如果您只有FTP訪問權限(例如共享主機),請右鍵單擊FTP程序中的文件夾,選擇屬性或類似選項並查找權限選項卡。給「每個人」或「其他」寫入權限。如果您在共享主機上,請聯繫他們的支持,如果您不確定如何執行此操作。 –

0

上傳文件夾在哪個文件夾中?我認爲它是[代碼文件夾] /上傳,但你永遠不知道..否則,是查詢拋出異常?或者返回false?是否添加了「詳細信息」?

0

僅僅因爲你正在運行在您的網站上的腳本調用的財產以後/目錄/ file.php犯規作出這樣的「上傳」將被視爲東西/目錄/上傳/ ..

此外,在檢查權限該目錄。

您正在將文件名設置爲單獨的名稱,而不是使用上傳的文件名?這是你的形式(你沒有包括我們檢查的形式)

我沒有看到你在任何地方設置$ id?

SQL是否正常工作? move_uploaded_file返回true/false,您不檢查移動是否成功。

+0

嗨bugfinder。這裏的代碼: – dcck

+0

原諒我,我沒有看到任何額外的代碼 – BugFinder