自动创建文件夹和子文件夹(链接到userid的子文件夹)

时间:2016-05-06 07:20:59

标签: php .htaccess

创建文件夹和子文件夹(链接到数据库userid)。没有创建子文件夹,用户的图像将被部署。当用户yploads时,图像应该放在userid文件夹中。如果有人可以提供帮助并给予请编码相对于我的编码。这是下面的代码

session_start();

$ds = DIRECTORY_SEPARATOR;  
$storeFolder = '../../advertiser_images/'.str_replace("#","",$_SESSION["userID"]);   



if (!empty($_FILES)) 
{
    $tempFile = $_FILES['file']['tmp_name'];                 
    $targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds; 
    $targetFile =  $targetPath.$_SESSION["vid"].str_replace(" ","",$_FILES['file']['name']);
    move_uploaded_file($tempFile,$targetFile);
}
include_once '../../modules/database/db-functions.php'; 

$data = array();

$data[0] = 'booklook';
$data[1] = 'book_images';
$data[2] = 'vid';
$data[3] = '#'.$_SESSION["vid"];
$data[4] = 'did';
$data[5] = $_SESSION["userID"];
$data[6] = 'iid';
$data[7] = $_SESSION["vid"].str_replace(" ","",$_FILES['file']['name']);
$data[8] = 'img_loc';
$data[9] = 'advertiser_images/'.str_replace("#","",$_SESSION["userID"]).'/'.$_SESSION["vid"].str_replace(" ","",$_FILES['file']['name']);

add($data);

1 个答案:

答案 0 :(得分:0)

您在代码中缺少目录创建:

$path = realpath('../../advertiser_images').DIRECTORY_SEPARATOR.str_replace("#", "", $_SESSION["userID"]);

if (!file_exists($path)) {
    mkdir($path, 0755, true);
}

函数man:
realpath - 从相对路径获取真实路径,同时修复目录分隔符,
file_exists - 检查dir / file是否存在 mkdir - 创建目录。第一个参数是dir名称,第二个 - dir模式和第三个 - 递归创建(意味着父目录也将被创建)