在PHP中的非现有文件夹中上传图像

时间:2016-08-05 11:34:32

标签: php mysql

我遇到了一个问题,我需要将图片上传到文件夹并将其路径存储到数据库中。

如果该文件夹不存在,则创建新文件夹,然后将其存储在那里并将完整路径保存到数据库中。

    $file_name=$_FILES["uploadedimage"]["name"];
    $temp_name=$_FILES["uploadedimage"]["tmp_name"];
    $imgtype=$_FILES["uploadedimage"]["type"];
    $ext= GetImageExtension($imgtype);

要使用的图像名称

    $imagename=("Userimage")."-".time().$ext;

图片路径

$target_path = "images/".$imagename

条件

if(move_uploaded_file($temp_name, $target_path))
{
    $query_upload="INSERT into images_tbl (images_path , submission_date) VALUES ('".$target_path."','".date("Y-m-d")."')";
    $imagedb= mysqli_query($con,$query_upload);

while($imagepath = mysqli_fetch_array($imagedb))
    {
        echo "success";
    }  
}

3 个答案:

答案 0 :(得分:1)

很简单:

 $target_path = 'images/'.$imagename;
 if(!is_dir($target_path)) mkdir($target_path, 0755);

不要使用" "当你可以使用' ',因为每次使用" .." ,php尝试在里面找到变量,没有时间浪费时间。 ;)

答案 1 :(得分:0)

你可以这样做:

<?php
$target_dir = preg_replace('#^(.*)'.basename($target_path).'$#', '$1', $target_path);
if (!is_dir($target_dir))
    mkdir($target_dir, 0755);

if(move_uploaded_file($temp_name, $target_path))
{
    $query_upload="INSERT into images_tbl (images_path , submission_date) VALUES ('".$target_path."','".date("Y-m-d")."')";
    $imagedb= mysqli_query($con,$query_upload);

while($imagepath = mysqli_fetch_array($imagedb))
    {
        echo "success";
    }  
}
?>

preg_replace部件将目录路径从完整路径中剥离。

答案 2 :(得分:0)

if (!file_exists('path/to/directory')) {
    mkdir('path/to/directory', 0777, true);
}

0777是目录权限,即创建目录并将权限设置为0777,以便可以将文件上载到此目录