2011-01-15 3 views
1

У меня есть система, в которой пользователи (даже публичные) могут загружать * .pdf-файлы, теперь я хочу реализовать функцию, которая предоставляет возможность удалять загруженные файлы.реализация функции удаления файла

Это то, что я имею в виду:

  • создать уникальный удаления хеш для каждого файла и сохранить его в базе данных (ассоциировать его с уникальным идентификатором каждого файла)
  • Создание и отображения удалить URL для пользователя, который загрузил файл
  • Когда удаление URL (наряду с идентификатором и хэш) называется, проверьте, если удаления хэш совпадает с идентификатором
  • unlink the file

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

Благодаря

Edit: Пожалуйста, предложить мне метод для создания хэша, который не может быть угадан.

+0

na-1 всегда легко дать, но это должно быть актуально, и вы должны указать причину: как вы собираетесь файлы ссылок и пользователей? Нужна ссылка, будет ли это идентификатор пользователя, cookie ... Если пользователь не сможет удалить только файл, который он * просто загрузил. В любом случае это следует упомянуть в вопросе. Мой ответ уместен с учетом контекста. Контекст - это ваш вопрос. –

+0

, но я думаю, что использование хэша необходимо, так как гости и участники могут загрузить файл, о котором я упомянул в своем вопросе. И я серьезно не знаю, насколько важна эта система голосования. – Vamsi

+0

na Но вы, кажется, используете его ... –

ответ

2

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

+0

Спасибо за ваш ответ, можете ли вы предложить мне способ генерации случайного и безопасного хэша? – Vamsi

+0

'md5_file()' http://de3.php.net/manual/en/function.md5-file.php - хотя я все еще думаю, что вы должны сделать это с помощью аутентификации пользователя ... – nickf

+0

Ну, каждый может запустить md5 хэш-функции в загруженном файле, не так ли? – middus

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