move_uploaded_file()函数在引用另一个页面时不起作用

时间:2012-12-26 02:56:19

标签: php

我将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文件夹为空。我真的想不出什么是错的。

非常感谢所有愿意花时间帮助我的人。

2 个答案:

答案 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