Генерация случайного имени для загруженного файла
Генерация случайного имени для загруженного файла
Есть ли в Yii какой-либо способ генерировать валидные случайные имена для загружаемых файлов, чтобы они не повторялись ?
Или нужно искать в нете/писать функцию для генерации случайной строки?
Или нужно искать в нете/писать функцию для генерации случайной строки?
Re: Генерация случайного имени для загруженного файла
Во! Похоже на то что нужно.
Когда искал в интернете, нашел только написанные кем-то громоздкие функции-генераторы. Спасибо.
Когда искал в интернете, нашел только написанные кем-то громоздкие функции-генераторы. Спасибо.
Re: Генерация случайного имени для загруженного файла
Только не забывайте проверять результат на уникальность.
- Beaten_Sect0r
- Сообщения: 234
- Зарегистрирован: 2011.06.15, 14:58
- Откуда: Ярославль
- Контактная информация:
- TranceSmile
- Сообщения: 562
- Зарегистрирован: 2011.06.27, 19:04
- Откуда: Украина
- Контактная информация:
Re: Генерация случайного имени для загруженного файла
ну это проверка на одинаковость файла. Тоже хороший способ =)
- Beaten_Sect0r
- Сообщения: 234
- Зарегистрирован: 2011.06.15, 14:58
- Откуда: Ярославль
- Контактная информация:
Re: Генерация случайного имени для загруженного файла
а чего бы и имя файла не заменять на hesh md5? и файл уникальный и его имя.TranceSmile писал(а):ну это проверка на одинаковость файла. Тоже хороший способ =)
_https://coru.ws
Re: Генерация случайного имени для загруженного файла
наверно потому что получение хэша файла (в зависимости от размера, хотя это даже не важно) более ресурсоемкий процесс, нежели получение генерированной строки по значению microtime.
Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard
— Edward V Berard
Re: Генерация случайного имени для загруженного файла
А вдруг двадцать пользователей загрузят один и тот же демотиватор, а потом кто-то один его удалит...Beaten_Sect0r писал(а):а чего бы и имя файла не заменять на hesh md5? и файл уникальный и его имя.
Re: Генерация случайного имени для загруженного файла
md5( rand(0,2000) . $Image->name . microtime() )
Чтоб уж наверняка ^_^
Чтоб уж наверняка ^_^
Re: Генерация случайного имени для загруженного файла
То есть вы считаете что microtime() - когда-то, чисто теоретически, даст неуникальное значение? (не считая точного момента, чего в принципе быть не может)AlTiger писал(а):md5( rand(0,2000) . $Image->name . microtime() )
Чтоб уж наверняка ^_^
Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard
— Edward V Berard
Re: Генерация случайного имени для загруженного файла
2 пользователя одновременно сохраняют 2 картинки с одинаковыми файлами. Маловероятно... но все же
-
- Сообщения: 12
- Зарегистрирован: 2012.10.09, 18:22
Re: Генерация случайного имени для загруженного файла
Я вот так генерирую имя
Код: Выделить всё
$newName = date('mdyGis') . rand(1, 1000) . '.' . $type;
- timlar
- Сообщения: 1382
- Зарегистрирован: 2009.09.19, 17:49
- Откуда: Украина, Днепропетровск
- Контактная информация:
Re: Генерация случайного имени для загруженного файла
Я такой вариант использую: md5(uniqid(microtime(), true))
Twitter: @timlar_ua
Re: Генерация случайного имени для загруженного файла
Генерировать случайное имя файла с помощью одного только uniqid() ни в коем случае нельзя. Вот результат работы функции в цикле на достаточно быстрой машине:
Настолько же бессмысленно как и в первом случае, т.к. uniqid() основан на microtime(). Действительно надежный и оптимизированный способ вот:
Но если ресурсы сервера позволяют то способ лучше md5_file() найти сложно. Это не только сэкономит место на сервере при загрузке двух одинаковых файлов, но и гарантирует уникальность на основе содержимого.
- 51afeff864f9a
51afeff864f9b
51afeff864f9c
51afeff864f9c
51afeff864f9d
51afeff864f9e
51afeff864f9f
51afeff864fa0
51afeff864fa0
Код: Выделить всё
md5(uniqid(microtime()));
Код: Выделить всё
md5(uniqid(rand(),true));