2010-10-01 2 views
0

Как обрабатывать файлы внутри подкаталогов папки с помощью php-скрипта. На самом деле, я хочу, чтобы файлы изображений внутри каждого подкаталога, находящиеся на моем сервере, обрабатывали и сохраняли в другом месте и сохраняли имя папки & имя файла в базе данных. Может кто-нибудь помочь и дать пример сценария о том, как управлять этим ...хотите обрабатывать файлы внутри подкаталогов папки

структура папок может быть что-то вроде этого

parent folder 
sub-folder1 
    img1 
    img2 
    img3 
    . 
    . 
    img'n' 
sub-folder2 
    img1 
    img2 
    img3 
    . 
    . 
    img'n' 
sub-folder3 
    img1 
    img2 
    img3 
    . 
    . 
    img'n' 
. 
. 
. 
sub-folder'n' 

Кроме того, если на процесс копирования и записи в базу данных, как может показать индикатор прогресса

+0

Возможно, вы захотите попробовать выполнить поиск каждого отдельного шага, вместо того чтобы попросить кого-нибудь написать сценарий для вас. На все этапы был дан ответ на переполнение стека раньше. Сюда входят: рекурсивно перебирать файловую систему, обнаруживать определенные типы файлов, перемещать файлы в файловой системе, вставлять данные в базу данных. – Gordon

+0

Извините, я согласен с ответом, который, хотя я бы помог настроить его в соответствии с моей потребностью, остается только то, как показывать индикатор выполнения во время обработки файлов. –

ответ

1

u можете использовать эту функцию для копирования папки, включая ее подпапки, из источника в цель.

function fullCopy($source, $target) { 
    if (is_dir($source)) { 
      $d = dir($source); 
      while (FALSE !== ($entry = $d->read())) { 
        if ($entry == '.' || $entry == '..') { 
          continue; 
        } 
        $Entry = $source . '/' . $entry; 
        if (is_dir($Entry)) { 
          @mkdir($Entry); 
          fullCopy($Entry, $target . '/' . $entry); 
          continue; 
        } 
        copy($Entry, $target . '/' . $entry); 
      } 

      $d->close(); 
    }else { 
      copy($source, $target); 
    } 
} 

Внутри цикла u можно выполнить запрос на сохранение имен файлов в базе данных.

+0

+1 если вы включили «сохранить имя папки & имя файла в базе данных "бит – stevendesu

+0

Как я могу показать индикатор выполнения, когда процесс продолжается ... –

+0

вот урок: http://www.ibm.com/developerworks/library/os-php-v525/index. HTML –

0

Вы можете использовать PHP glob() для сбора ваших файлов. Сохранение информации в базе данных довольно прямолинейно. Перемещение файлов можно выполнить через rename(). Документация MySQLi полна примеров того, как разговаривать с вашей базой данных.

Смежные вопросы