Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Пакетное изменение размеров файлов и переименование в MD5
Форумы портала PHP.SU » » Вопросы новичков » Пакетное изменение размеров файлов и переименование в MD5

Страниц (1): [1]
 

1. con - 13 Июля, 2019 - 12:25:58 - перейти к сообщению
Всем доброго!
Помогите пожалуйста написать код, который пакетно изменит размеры изображений в двух вариантах, переименует эти изображения в MD5 и создаст для каждого варианта изобаржения приставку _big и _mini.
Изображение с приставкой _big должно быть 200*200px
Изображение с приставкой _mini должно быть 100*100px

Исходные изображения удалять не нужно.
Готовые файлы можно переместить в папку ( например /img/resize/ ) или оставить в том же каталоге.

Пример:
В каталоге /img/ есть 2 изображения с разными расширениями (указал рядом в скобках) и названиями на кириллице и латинице:
example_1.jpg (400px*200px)
пример_2.jpg (150px*80px)

В результате работы скрипта нужно получить 4 файла:
→ Для example_1.jpg
1) f6e11dccb3340f1f77c4845d95b119e1 _big.jpg
2) f6e11dccb3340f1f77c4845d95b119e1 _mini.jpg

→ Для пример_2.jpg
1) 50aaf85e4bc392af85f04bba10cbd0eb _big.jpg
2) 50aaf85e4bc392af85f04bba10cbd0eb _mini.jpg

То есть в MD5 переименовывается только название без разширения файла ( example_1 и пример_2)
Буду рад вашей помощи!
2. LIME - 13 Июля, 2019 - 13:51:51 - перейти к сообщению
Код не дам
Ну лениво елки палки
Подскажу только принцип
Хэшировать надо не имена а содержание
Тогда можно не хранить копии под разными именами
Вообще-то лучше файловый хостинг сделать отдельным сервисом
Кропать надо асинхронно
Думаю достаточно кинул дерьма на вентилятор
Пора убегать
Гуглиииии
(Добавление)
Вообще-то это целое дело
Посмотри в сторону готовых решений
Раньше предложил бы Амазон
Спасибо Яровой теперь это невозможно
У нас собственный медиахостинг
Гугли что есть в России для этого
3. con - 13 Июля, 2019 - 13:56:21 - перейти к сообщению
Спасибо, буду гуглить дальше)
4. LIME - 13 Июля, 2019 - 18:35:34 - перейти к сообщению
Гугли crop
5. con - 13 Июля, 2019 - 18:39:02 - перейти к сообщению
LIME пишет:
Гугли crop

Ок. Я уже понял, что своими силами в лучшем случае напишу скрипт, что просто перекодирует имя файла в md5. Остальное буду делать сторонним софтом.
Я же правильно понимаю, что для этого нужен такой алгоритм:
1. Прочитать имя файла;
2. Присвоить это имя переменной;
2.1 Перекодировать имя в MD5 и присвоить его второй переменной;
3. Найти файл в каталоге с именем, которое соответствует тому, что записали в шаге 2. И если оно совпадает
4. Перекодировать имя, которое присвоили переменной в шаге 2.1
5. Переименовать файл

Или сильно мудрено?
6. LIME - 13 Июля, 2019 - 21:36:40 - перейти к сообщению
Мудрено? ))
Нет
Сильно упрощено
Перечитай выше
Вообще-то хостинг файлов это не тривиальная задача
Пока делай как умеешь
Набивай шишки
Намекну например
Что если их будет очень много? Inodes даже могут закончится
Значит шардирование
Значит функция шардинга
Ойй
Начать и кончить
(Добавление)
Пока делай как проще
Но знай что это сложно
Пс: буквально сейчас на мне висит задача рефакторинга файлхостинга где файлов чуть более ярда
Это жесть
Радуйся пока можешь))
(Добавление)
Я не за сторонний софт
Я за включить голову
Погугли потом решай что тебе лучше

 

Powered by ExBB FM 1.0 RC1