我正在構建一個頁面,允許將文件上傳到服務器並進行排序。我知道這個代碼即使在工作中也不適合實時生效,但這只是讓機制工作的初稿,因爲我對服務器端腳本很陌生。爲什麼PHP的move_uploaded_file()方法在我的腳本中返回false?
總之,這裏的上傳表單頁面:
<html>
<body>
<?php include("header.php"); ?>
<center>
<h1>Please enter the details of the file you would like to upload:</h1><br/>
<table>
<tr>
<td align='center'>
<form action='uploader.php' method='POST' enctype='multipart/form-data'><b>Name:</b> </td>
<td align='left'><input type='text' name='name' maxlength='255' />
</td>
</tr>
<tr>
<td align='center'><b>Description of file uploaded: </b>
</td>
<td align='left'><textarea name='description' rows='5' cols='20'></textarea>
</td>
</tr>
<tr>
<td align='center'><b>Category: </b>
</td>
<td align='left'>
<select name='category'>
<option value='1'>Agriculture</option>
<option value='2'>Sexual Health</option>
<option value='3'>Arithmetic</option>
<option value='4'>Technology</option>
<option value='5'>Reading/Literature</option>
<option value='6'>Health/Medicine</option>
</td>
</tr>
<tr>
<td align ='center' >
<b>File: </b>
</td>
<td align='left'>
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
<Choose a file to upload: <input name="uploadedfile" type="file" /><br />
</td>
</tr>
<tr height='20px'></tr>
<tr align ='left'>
<td> </td>
<td>
<input type='Submit' value='Upload File' />
</td>
</tr>
</table>
</center>
<?php include("footer.php"); ?>
</body>
</html>
和這裏的操作頁面uploader.php:
<?php
$target_path = "./audio/";
$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!";
}
?>
每當我試着測試,在我的本地(使用XAMPP)回聲「上傳文件時出錯,請重試!」
而且每幾次,它也說: 「 注意:未定義指數:UploadedFile的在C:\用戶\保羅\桌面\ XAMPP \ htdocs中\ XAMPP \ uploader.php第5行」
但我做不到看不出這個說法有什麼問題?是不是上傳文件定義爲我的表單中的文件的臨時名稱?
你能告訴我我在這裏做錯了嗎?
非常感謝
你的權限是什麼樣的? – Nick 2011-04-17 12:58:26
該文件夾位於我的本地計算機上,並且文件夾似乎沒有任何特殊限制。 – Paul 2011-04-17 13:05:09
發生錯誤時,您可以使用$ _FILES ['uploadedfile'] ['error']並檢查到底發生了什麼(我的猜測是您將文件移至不存在的目錄)。處理文件上傳時,請諮詢php.net如何解釋錯誤消息。 – 2011-04-17 13:05:10