загрузка файлов

dennnis

Новичок
загрузка файлов

фотогалерея
Код загрузки и проверки сущесвования фотки

if (isset($submit)) {

$filename="fotka/".$filename;

if(file_exists($filename)){

$filename=$filename.'_'.rand(0,1000);

}

copy($file, $filename);

}

А что если в каталоге fotki уже существую файлы, например А и А_127
Новый пользователь хочет назвать фотку А и скрипт дописывает _127, ведь такое возможно? Какой механизм корректной загрузки файлов, исключающий подобное. (Фрагмент кода из кники Д.Колесниченко).
Спасибо.
 

Фанат

oncle terrible
Команда форума
пля.
написать алгоритм, который прибавляет число к имени файла, как винда, когда создаёт папки - это 5 минут!
И с такой Ужасно Сложной проблемой обязательно надо идти в форум!
 

Рома

был тут
Я чего-то немного недопонял. Это теперь такая политика форума? Я дал ответ на вопрос из первого поста, а его то ли удалили, то ли куда-то переместили...
 

Фанат

oncle terrible
Команда форума
это плохой ответ.
напишешь хороший - никуда он не денется.
 

Апокалипсис

тех дир matras.ru
Рома
Просто если давать постоянно готовое решение(какое бы оно не было) человек не разобравшись будет его копировать, и постоянно приходить и снова просить решение.
 

Рома

был тут
Автор оригинала: Рома
Я чего-то немного недопонял. Это теперь такая политика форума? Я дал ответ на вопрос из первого поста, а его то ли удалили, то ли куда-то переместили...
Чем плохой? Исправно работающий пример был.

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

Мне, например, на своей работе приходится иногда менять настройки офисной миниАТС, хотя я понятия не имею как она работает, просто знаю несколько функций. В случае сложностей задаю вопросы на специализированном форуме, на котором всегда получаю грамотный ответ, а не фразу типа иди учись/читай ман итп. Я понимаю, что при таком подходе никогда не стану профессиональным телефонистом, но оно мне и не надо, мне надо просто быстро реализовать ту или иную фичу и люди с форума без лишних слов отвечают на конкретно поставленные вопросы, за что им большое спасибо.
 

Рома

был тут
Рандомизатор взял из исходного примера, вместо него, разумеется, тожно любой другой способ генерации имени использовать. А без рекурсии мне трудно представить как реализовать алгоритм, который бы корректно работал в случае если файл пытаются сохранить под именем 1.txt и в папке уже есть куча файлов типа 1.txt, 1_1.txt, 1_2.txt ... 1_999.txt.
 

Рома

был тут
На вкус и цвет. Мне значительно больше нарвятся осмысленные имена типа "foto_1.jpg", "foto_2.jpg" чем красота вида "kjfghkdjfgkdjfgd98yfd7t43.jpg".

-~{}~ 20.03.07 12:21:

Хотя конечно такое решение, с точки зрения посетителя сайта, ничуть не хуже и не лучше предложенного мной.
 

SombreAdm

Новичок
зачем нужны топиги, если варианты пользователей просто удаляются без комментария (допустим, мнение модератора тоже можно оспорить? оно не может являться конечной истиной, потому что ее дефакто не существует, если ее нельзя доказать)

так почему бы просто не дать комментарий, что такой вот вариант плох потому-то... а этот.. потому-то
чем просто его удалить?
 

Фанат

oncle terrible
Команда форума
хочется поддерживать качество содержимого форума на приемлемом уровне.
Если можно сделать лучше - почему не сделать лучше?

тем более, что автор никаких мд5 не заказывал
 

Рома

был тут
Автор оригинала: Фанат
циклы уже не модно?
Я конечно прошу пардону, но чем тот же while в скомпилированном (интерпритированном) виде отличается от рекурсии?

зачем нужны топиги, если варианты пользователей просто удаляются без комментария (допустим, мнение модератора тоже можно оспорить? оно не может являться конечной истиной, потому что ее дефакто не существует, если ее нельзя доказать)

так почему бы просто не дать комментарий, что такой вот вариант плох потому-то... а этот.. потому-то
чем просто его удалить?
Полностью разделяю мнение SombreAdm.

хочется поддерживать качество содержимого форума на приемлемом уровне.
Если можно сделать лучше - почему не сделать лучше?
Не спорю, но чем мешают форуму "глупые вопросы"? Хотел тут давиче найти ответ на один вопрос, воспользовался поиском, нашел кучу топиков, в большинстве которых ответы были примерно такими "Читай ман, пользуйся поиском, сто раз обсуждалось" и ни одного конкретного ответа, вот если бы вместо всех этих "читайманов" были ссылки на конкретную страницу мана или на конкретный топик в форуме, то поиск стал бы значительно эффективнее, а форум лучше. Имхо.
 

boombick

boombick.org
Фишка в том, что интерес для обсуждения вызывают действительно необычные вещи. Посмотрите в "вопросы по теории программирования", там нет посылов в ман итд. А вопросы этого плана настолько разжеваны и разложены по полочкам, что отвечать на них не хочется. Ибо ответ находится за 5 минут в гугле. Также не хочется, чтобы потом товарищи, которые 5 раз скопипастили код с форума потом писали в резюме "Опыт программирования на PHP", а получив работу и первое задание (production-уровня, с которым они раньше не сталкивались) тут же по привычке бежали на форум с воплями "клиент хочет, шоб вот так", не думая о том, что остальным, в принципе, пофиг, что там у него клиент хочет и думает... И на месте клиента я бы подумал о смене исполнителя.
Извините за оффтопик, наболело :)
 
Сверху