如何在php中上传文件并将文件移动到一个特殊的文件夹


how to upload file in php and move file to a special folder

我想将用户发送的文件上传到相应的文件夹。这是我的密码。它不会上传到我想要的地方。

$type=$_POST["type"];
$username_post=$_POST["username"];
$text=$_POST["text"];
$image=basename($_POST["image"]);
$page_number=$_POST["page_number"];
$video=basename($_POST["video"]);
$voice=basename($_POST["voice"]);
$title=$_POST["title"];
$dir=$username_post;
if( is_dir($dir) === false )
  {
       mkdir($dir,0666, true);
       mkdir($dir.'/'.$title,0666, true);
  }
  else
  {
      mkdir($dir.'/'.$title,0666, true);
      }
  if( is_dir($dir.'/'.$title) === true )
    {   
    $uploads_dir =$dir.'/'.$title;  
    $tmp_name = $_FILES["file"]["tmp_name"];
    $name = $_FILES["file"]["name"];
    move_uploaded_file($tmp_name,$uploads_dir.'/'.$name);
  }
  1. 首先,您不应该从用户输入的post值创建目录。例如:如果用户在$_POST['username]中输入了一些不允许使用的字符,如"/*|",那么您将无法使用这些值创建目录。检查您是否有权在该文件夹中创建目录
  2. 再次检查$_FILES['file']['error']==0。如果不是0,则该文件存在错误,无法上载
  3. 对最后一个"if语句"使用"else条件"来查看"if语句"是否执行
  4. 还要检查您是否在表单标记中提到了enctype="multipart/form-data"