警告:move_uploaded_file():copy()函数的第二个参数不能是目录

时间:2015-04-15 17:33:19

标签: php

没有解决方案,因为我已经搜索了很多关于将我上传的图像移动到目录这里是我的PHP代码:

<?php
  //Profile Image upload script
  if (isset($_FILES['profilepic'])) {
   if (((@$_FILES["profilepic"]["type"]=="image/jpeg") || (@$_FILES["profilepic"]["type"]=="image/png") || (@$_FILES["profilepic"]["type"]=="image/gif"))&&(@$_FILES["profilepic"]["size"] < 1048576)) //1 Megabyte
  {
   $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
   $rand_dir_name = substr(str_shuffle($chars), 0, 15);
   $dir = "userdata/profile_pics/$rand_dir_name";
   mkdir($dir);
   move_uploaded_file($_FILES["profilepic"]["tmp_name"],"userdata/profile_pics/$rand_dir_name".$_FILES["profile‌​pic"]["name"]);
    $profile_pic_name = $_FILES["profilepic"]["tmp_name"];
    echo $profile_pic_name;
    $profile_pic_query = mysqli_query($conn,"UPDATE users2 SET profile_pic='$rand_dir_name/$profile_pic_name' WHERE username='$user'");

  }
  else
  {
      $msg5 =  "Invailid File! Your image must be no larger than 1MB and it must be either a .jpg, .jpeg, .png or .gif";
  }
  }

?>

但是当我尝试上传图片时,它会在userdata / profile_pics中创建随机文件夹,但它不会将文件移动到随机文件夹目录中我还创建了一个自定义的php.ini文件,其中file_uploads = On,但我收到了提交表格时发出以下警告: -

警告:move_uploaded_file():copy()函数的第二个参数不能是第26行/home/rahulkapoor90/public_html/note.php中的目录

警告:move_uploaded_file():无法在第26行的/home/rahulkapoor90/public_html/note.php中将'/ tmp / phpO592dd'移动到'userdata / profile_pics / zAGC9wOhVyoe3R5' / tmp / phpO592dd

2 个答案:

答案 0 :(得分:2)

对于遇到此错误的任何其他人,在我的情况下,这是一个权限问题。我重新考虑了一些遗留代码并检查了错误的目录以获取权限,而是不断收到这种误导性的错误消息。

答案 1 :(得分:0)

浪费了几个小时才能找到正确的原因。你可以尝试两件事

验证目标文件夹

`$destdir="YOUR-COMPLETE-DESTINATION-FOLDER/uploads/";

if(is_dir($destdir) && is_writable($destdir))
    {echo "<strong>UPLOAD DIRECTORY EXIST & WRITABLE</strong>";}
else 
    {echo "<strong>ISSUE WITH UPLOAD DIRECTORY</strong>";}`

确认move_uploaded_file的第二个参数是文件名不是目录名

在我看来,这就是问题所在 if(move_uploaded_file($tempname,"$destdir/".$_FILES['profilepic']['name']")) {echo 'FILE UPLOADED SUCCESSFULLY';} else {echo "FAILED TO UPLOAD";}