我将move_upload_file()函数引用到另一个页面时遇到问题。它没有任何错误。但问题是所选文件未被转移到指定目录。
我不知道这是什么问题,并感谢任何帮助或建议。
以下是代码:
第1页(输入正在进行中):
<form name='NewsForm' method='post' action='conf_news.php' enctype='multipart/form-data' >
<input type="file" name="file" id="file" value='' >
<input type='submit' name='AddNews' value='POST' >
</form>
它将代码带到另一个页面“conf_news.php”,其中我引用了存储文件的一部分: 第2页:
$PicMessage = "";
$PicName = addslashes( $_FILES["file"]["name"] );
$PicType = addslashes( $_FILES['file']['type'] );
$PicSize = addslashes( $_FILES['file']['size'] );
$PicError = addslashes( $_FILES["file"]["error"] );
$PicTempName = addslashes( $_FILES["file"]["tmp_name"] );
$allowedExt = array('jpeg', 'jpg', 'gif', 'png');
$a = explode(".", $PicName);
$extension = end($a); unset($a);
if((($PicType == "image/gif")
|| ($PicType == "image/png")
|| ($PicType == "image/jpeg")
|| ($PicType == "image/jpg")
&& ($PicSize > 100)
&& in_array($extentions, $allowedExt))){
if($PicError > 0){
$PicMessage = "Error Type: ". $PicError. "<br />";
}
else{
echo "Upload: ". $PicName. "<br />";
echo "Type: ". $PicType. "<br />";
echo "Size: ". ($PicSize / 1024). " Kb<br />";
echo "Stored in: ". $PicTempName;
if(file_exists("../photos/". $PicName)){
$PicMessage = "File Already Exists";
}
else{
move_uploaded_file($PicTempName, "../photos/". $PicName);
$PicMessage = "Stored in: ". "../photos/". $PicName;
}
}
}
else{
$PicMessage = "Invalid File Type";
}
图片消息显示文件已传输但ptohos文件夹为空。我真的想不出什么是错的。
非常感谢所有愿意花时间帮助我的人。
答案 0 :(得分:1)
好的。我发现了问题。
in_array( $ extentions ,$ allowedExt))){将其更改为 $ extension 。这是一个小错误,但足以延迟我们的工作。还删除add_slashes( )并尝试。
答案 1 :(得分:0)
尝试验证文件是否实际上是使用POST请求上传的,因为正如此函数手册中所述:move_uploaded_file() ensures the safety of this operation by allowing only those files uploaded through PHP to be moved.
您可以验证文件是否通过PHP上传,函数为{{1} }}。这将告诉您该文件是否能够与is_uploaded_file()
一起使用。
将move_uploaded_file()
语句替换为:
else