move_uploaded_file()不起作用

时间:2015-01-22 06:10:37

标签: php

我使用XAMPP在本地计算机上运行我的测试php项目。我有一个表单,用户可以从他们的计算机浏览图像并上传到我的数据库。

我使用move_uploaded_file()功能将图像移动到所需的文件夹。该脚本运行时没有错误,但没有图像移动到所需的文件夹。如果move_uploaded_file()失败,它不会回显错误消息。这是我的代码:

$upload_dir= 'uploads';
for($i=0; $i < count($_FILES['file']['tmp_name']);$i++){
  if(!empty($_FILES['file']['name'][$i])){
        $temp = explode(".", $_FILES["file"]["name"][$i]);
        $extension = end($temp);
        $allowedExts = array("gif", "jpeg", "jpg", "png");

        if(!in_array($extension, $allowedExts)){
            echo  "Only image ending with .jpg, .jpeg, .gif, .png is allowed";
        }
        // copy the file to the specified dir 
        else{
            $name[$i] = sha1(microtime()) . "." . $extension;
            if(move_uploaded_file($_FILES['file']['tmp_name'][$i],$upload_dir.'/'.$name[$i])){
                $image_path_array[$i]=$upload_dir.'/'.$name[$i];
            }
            else{
                /*** an error message ***/
                echo "error with move_uploaded_file";
            }

         }
      }
  }

3 个答案:

答案 0 :(得分:0)

你的echo语句都不可能以这种方式工作。它应该是

echo "error with move_uploaded_file";

否&#34; =&#34;登录。

此外,您确定您的网络服务器是否有权写入上传目录?

答案 1 :(得分:0)

试试这个:

1)我认为您应该提供 $ upload_dir 变量的完整目录路径,如下所示:

$upload_dir=$_SERVER['DOCUMENT_ROOT']."/uploads";

2)是的,您为显示“move_uploaded_file错误”所给出的回声需要更正其他方面它会给出语法错误:

//an error message
echo "error with move_uploaded_file";

我希望这能解决您的问题:)

答案 2 :(得分:-2)

您应该为服务器上的图像和客户端计算机上的图像分别设置move_uploaded_files()函数。

  1. 来自客户端计算机的图像将上传到您的服务器临时文件夹
  2. 在线服务器上的图片将被提取为该图片的网址