Как создать каталог на 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];
           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.",";
            }

mkdir выдает предупреждение или есть ошибки? Также я бы использовал $info['extension'], а не $ext.

chris85 06.05.2018 17:01

ошибок нет ничего. изображения загружаются в папку car_images

amit sutar 06.05.2018 17:02

$emp_code установлен?

chris85 06.05.2018 17:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
3
920
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это должно сработать, попробуйте.

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.

Вы можете изменить приведенный ниже код в соответствии с вашими потребностями, поэтому ниже я ответил на заданный вопрос.

Здесь $ name и $ tmp_name требуют 'Later' для функции 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']; 
    } 

Чтобы установить его, я принял его как $ _SESSION. Но вы можете изменить его в соответствии со своим кодом, например $ _POST или $ _GET. file_exists () проверяет, присутствует ли файл / каталог.

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.'/';
}

Теперь каталог $ emp_code будет находиться в папке $ car_images, затем вы переместите файл в каталог $ emp_code.

     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";
            }
            }
  • Теперь у вас есть папка car_images:
  • В этой папке у вас есть все папки, созданные emp_codes,
  • В этой папке у вас есть загруженные ими файлы (emp_codes).

Позже, если это сработает, вы можете изменить код на ограниченные операторы IF. Надеюсь, это помогло. :)

Другие вопросы по теме