如何在php中创建目录? [英] How to create directory in php?

查看:28
本文介绍了如何在php中创建目录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我当前的文件夹路径是 $path = car_images;它为我工作.我可以直接将我的图片上传到这个文件夹中.但我想为每个用户创建单独的文件夹.所以现在图片应该上传到 $path = car_images/$emp_code;

意味着我想首先创建名为 $emp_code 的目录到 car_images 文件夹中,然后到 $emp_code 目录图像将上传.>

我当前的代码没有在 car_images 文件夹中创建目录.

 $path = "car_images/".$emp_code;if (!is_dir($path.'/'.$emp_code)){mkdir($path.'/'.$emp_code, 0777, true);}$name = $_FILES['car_images']['name'][$i];$size = $_FILES['car_images']['size'][$i];列表($txt,$ext)=explode(.",$name);$file= time().substr(str_replace(" ", "_", $txt), 0);$info = pathinfo($file);$filename = $file.".".$ext;if(move_uploaded_file($_FILES['car_images']['tmp_name'][$i], $path.$filename)){$file_name_all.=$filename.",";}

解决方案

这个必须的,试试吧.

这就是你想要的:文件夹 A||--Folder_001---所有上传/必须由001(用户1)发送到这里的文件|--Folder_002---所有上传/必须由002(用户2)发送到这里的文件|--Folder_003---所有上传/必须由003(用户3)发送到这里的文件|--Folder_004---所有上传/必须由004(用户4)发送到这里的文件|--|--|--等等....

<块引用>

内部目录:folder_A(你已经有了),新的文件夹会根据你的需要生成.(例如:user1_folder, user2_folder..)

例如:用户上传文件时,可以根据user_id创建文件夹,稍后用户上传文件时,文件进入:

folder_A --> User_id_folder --> User_id 上传的文件将/可以出现/发送到这里.

您可以根据需要更改以下代码,所以下面我已经回答了所问的问题.

此处,函数 move_uploaded_file($parameter1,$parameter2) 需要 $name 和 $tmp_name 'Later'.

if(isset($_FILES) & !empty($_FILES)){$name = $_FILES['file']['name'];/* $size = $_FILES['file']['size'];$type = $_FILES['file']['type'];*/$tmp_name = $_FILES['file']['tmp_name'];}

为了设置它,我假设它是 $_SESSION.但是你可以根据你的代码修改它,比如 $_POST 或 $_GET.file_exists() 检查文件/目录是否存在.

if (isset($_SESSION['emp_code'])){$emp_code= $_SESSION['emp_code'];如果 (!file_exists('car_images/'.$emp_code)) {mkdir('car_images/'.$emp_code, 0777, true);}$location = 'car_images/'.$emp_code.'/';}

现在 $emp_code 目录将在 $car_images 文件夹中,然后将文件移动到 $emp_code 目录.

 if(isset($name) & !empty($name)){如果(move_uploaded_file($tmp_name,$location.$name)){//在这里执行代码.//在 sql 查询中使用它作为 '$location$name'/*  例如:$sql = "UPDATE `table_name` SET `image`='$location$name' WHERE `email`='$email'";*/}别的 {echo "上传失败";}}

  • 现在你有了 car_images 文件夹:
  • 在该文件夹中,您拥有所有 emp_codes 生成的文件夹,
  • 在那个文件夹中,你有他们上传的文件(emp_codes).

稍后如果这有效,那么您可以将代码修改为有限的 IF 语句.希望它有所帮助.:)

my current folder path is $path = car_images; Its working for me. i can upload my images into this folder directly. But i want to create separate folders for each user. so now images should be upload into $path = car_images/$emp_code;

means i want to first create directory with name $emp_code into car_images folder and then into $emp_code directory images will upload.

My current code that's not creating directory into car_images folder.

           $path = "car_images/".$emp_code;
           if (!is_dir($path.'/'.$emp_code)) 
           {
             mkdir($path.'/'.$emp_code, 0777, true);
           } 
           $name = $_FILES['car_images']['name'][$i];
           $size = $_FILES['car_images']['size'][$i];
           list($txt, $ext) = explode(".", $name);
           $file= time().substr(str_replace(" ", "_", $txt), 0);
           $info = pathinfo($file);
           $filename = $file.".".$ext;
           if(move_uploaded_file($_FILES['car_images']['tmp_name'][$i], $path.$filename)) 
            { 
               $file_name_all.=$filename.",";
            }

解决方案

This has to work, try it.

This is what you want : 

Folder A
   |
   |--Folder_001---All files uploaded/has to be sent here by 001(user 1)
   |--Folder_002---All files uploaded/has to be sent here by 002(user 2)
   |--Folder_003---All files uploaded/has to be sent here by 003(user 3)
   |--Folder_004---All files uploaded/has to be sent here by 004(user 4)
   |--
   |--
   |--so on.... 

Inside directory: folder_A(which you already be having), New folders will be generated according to your need.(example: user1_folder, user2_folder..)

For example : when user uploads files, folders can be created according to user_id, Later when user uploads files, files go into:

folder_A --> User_id_folder --> User_id uploaded files will/can be present/sent here.

You Can change the below code according to your need, So below I have answered for the asked question.

Here, $name and $tmp_name required 'Later' for the function move_uploaded_file($parameter1,$parameter2).

if(isset($_FILES) & !empty($_FILES)){
       $name = $_FILES['file']['name'];
      /* $size = $_FILES['file']['size'];
       $type = $_FILES['file']['type']; */
       $tmp_name = $_FILES['file']['tmp_name']; 
    } 

To set it, I have assumed it as $_SESSION. But you can modify it according to your code like $_POST or $_GET. file_exists() checks whether file/dir is present or not.

if (isset($_SESSION['emp_code'])){ 

   $emp_code= $_SESSION['emp_code'];

   if (!file_exists('car_images/'.$emp_code)) {
   mkdir('car_images/'.$emp_code, 0777, true);
}
$location = 'car_images/'.$emp_code.'/';
}

Now the directory as $emp_code will be in the folder $car_images, then you move the file to $emp_code directory.

     if(isset($name) & !empty($name))
            {
               if(move_uploaded_file($tmp_name, $location.$name)){
                   // do the code here.
                  // In the sql query use it as '$location$name'

               /*  FOR EXAMPLE: 
    $sql = "UPDATE `table_name` SET `image`='$location$name' WHERE `email`='$email'";
               */
           }
            else {
               echo "failed to upload";
            }
            }

  • Now you have car_images folder:
  • In that folder, you have all emp_codes generated folders,
  • In that folder, you have the files uploaded by them (emp_codes).

Later if this works, then you can modify code to limited IF statements. Hope it helped. :)

这篇关于如何在php中创建目录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆