2013-03-12 2 views
0

Я пишу сценарий, где я хочу сохранить изображение логотипа. Я создаю папку «логотип» для каждого пользователя, например. user-data/user_1/logo/img007.pngphp проверить, находится ли файл в папке

Если пользователь решает загрузить другое изображение через некоторое время, я хотел бы удалить старое автоматически, чтобы веб-пространство не было излишне потрачено впустую.

До сих пор я решил не переименовывать файл во время процесса загрузки, поэтому я не могу использовать file_exists() в папке, так как скрипт не знает имя файла.

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

Если вы считаете, что я применил неправильный подход к этому и должен, например, переименуйте все файлы в один и тот же (что, я думаю, проблема, поскольку я разрешаю 4 разных общих формата изображения) или сохраняю имя файла «существующего» файла, и пусть скрипт проверяет его, пожалуйста, скажите мне также.

+1

Посмотрите в руководстве пользователя 'glob()' или 'opendir()'/'readdir()' или 'scandir()'. – Wrikken

+1

Почему вы не переименовываете файл? Делает вещи намного легче, если вы знаете, где вы ищете. –

+1

Не переименование файлов также может создавать проблемы безопасности с вашим сервером. –

ответ

3

Я бы создал папку user_logos/ и сохранил каждый логотип как [user name]_logo.png. Очевидно, вы можете решить расширение. Но я бы предпочел не иметь тысячи каталогов, каждый из которых содержит только один файл.

Было бы еще лучше, если вы могли бы создать случайный идентификатор для каждого логотипа, такие как [random_id]_logo.png и хранить идентификатор в таблице пользователей (в базе данных):

User ID  |  User Name  | Logo ID 

и просто загрузите его оттуда.

+0

I second this, good idea;) –

+0

Итак, подход будет состоять в том, чтобы переименовать файл определенным автоматическим способом, сохранить имя файла в пользовательской базе данных и проверить это имя с помощью file_exists(), если обновление пользователя имеет место. Я не решался переименовать из-за различных возможных расширений, но я думаю, что если я полностью сохраню имя файла с расширением в базе данных, это не должно быть проблемой. Спасибо! – Sebsemillia

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