我正在构建一个页面,允许将文件上传到服务器并进行排序。我知道这个代码即使在工作中也不适合实时生效,但这只是让机制工作的初稿,因为我对服务器端脚本很陌生。为什么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