我想将用户发送的文件上传到相应的文件夹。这是我的密码。它不会上传到我想要的地方。
$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);
}
- 首先,您不应该从用户输入的post值创建目录。例如:如果用户在$_POST['username]中输入了一些不允许使用的字符,如"/*|",那么您将无法使用这些值创建目录。检查您是否有权在该文件夹中创建目录
- 再次检查$_FILES['file']['error']==0。如果不是0,则该文件存在错误,无法上载
- 对最后一个"if语句"使用"else条件"来查看"if语句"是否执行
- 还要检查您是否在表单标记中提到了enctype="multipart/form-data"