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

时间:2015-03-16 12:11:59

标签: php

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

$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 个答案:

答案 0 :(得分:0)

  1. 首先,您不应该从用户输入的post值创建目录。 例如:如果用户输入一些不允许的字符,如“/ * |”在$ _POST ['username']中,您将无法使用这些值创建目录。 检查您是否有权在该文件夹中创建目录。
  2. 第二次检查$ _FILES ['file'] ['error'] == 0。如果不是0该文件有错误且无法上传。
  3. 对最后一个“if语句”使用“else condition”来查看“if语句”是否执行。
  4. 还要检查您是否在表单标记中提到了enctype =“multipart / form-data”。