@dark_spectator

Как сделать автоматическое переименование картинок и занесение пути к ним в базу данных?

Есть сайт на котором необходимо автоматически переименовывать новые картинки и заносить путь к ним в базу данных.
Например вы открыли папку в которой 1700 изображений, закинули туда еще 1500, открыли определённую страничку сайта и процесс пошёл. Каждую минуту JavaScript должен отсылать запрос к серверу и сервер должен переименовать 1 новый файл и занести путь к нему в базу данных.
  • Вопрос задан
  • 503 просмотра
Решения вопроса 1
@dark_spectator Автор вопроса
<?

mysql_connect('localhost', 'root', '') or die();
mysql_select_db('data');

$dir = "data/save_img/data/";
$files = array_diff( scandir( $dir), array('..', '.'));
foreach($files AS $i => $filename) {
    
   

    if (strlen($filename) < 32 && $filename !== '.htaccess') {
    	$key = md5($filename).".jpg";
    	 $block_n = $dir.$filename;
         $block_res = $dir.$key;
        rename($block_n, $block_res);
          
        	mysql_query("INSERT INTO `img` (`id`, `way`) VALUES (NULL, '$block_res')");
    } else {
        
    }

}

?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
gds1
@gds1
Пыха - это наше всё)))
зачем так сложно?

названия у картинок должны строиться по какому то определенному признаку, правильно?
пишем скрипт на php, который делает рекурсивный перебор файлов в директории, если название не попадает под признак - переименовываем картинку и вносим значение в БД.
Ответ написан
SagePtr
@SagePtr
Еда - это святое
Я загружаемые юзерами файлы обычно называю по sha1 от содержимого, заодно и дедупликация получается в том случае, если два раза будет загружен один и тот же файл.

Причём хэш от файла просчитываю перед загрузкой ещё и на клиенте, чтобы можно было отловить дубликат, не загружая сам файл (на сервере обязательно хэш перепроверить, ибо клиент может намеренно солгать).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы