2013-07-02 2 views
0

Я хочу сохранить файлы (в основном изображения и документы) на сервере, но у меня есть дилемма: как это будет называться? (Каждый файл будет иметь запись в БД - ID, название, имя файла, расширение, созданное, ...)Как назвать файл на сервере?

  1. Моя первая идея состоит в том, что он будет назван ID (из БД - каждое имя будет уникальным) , но когда кто-то его загрузит, у него будет уродливое имя (ID)
  2. Вторая идея заключается в том, что он будет называться по имени исходного файла, но он не уверен, что имена будут уникальными. Поэтому каждый раз, когда я что-то загружаю, я должен проверить всю БД для дубликатов имен.
  3. Последняя идея состоит в том, чтобы связать ID с именем (fileName_ID), чтобы он был уникальным, но я не очень доволен им.

Есть ли лучшее решение?

Спасибо за ответы. Михал

ответ

0

Решение 2: забудьте об этом. Это не совсем понятно.

Решение 3 может быть в порядке.

Решение 1 в порядке.

Вам просто нужно изменить имя файла, когда пользователь загрузит его.

header('Content-Disposition: attachment; filename="'.getFileNameFromDB($file_id)); 
+0

Великих, это именно то, что мне нужно! Большое спасибо. –

+0

Есть ли способ преобразовать имя_имя в originalName, когда вы хотите показать его только на веб-странице (в теге ), но не загрузите с помощью диалогового окна «Сохранить»? –

+0

У вас нет доступа к «Сохранить диалог» (поведение браузера), поэтому вы ничего не можете с ним поделать. В противном случае у вас есть apache, mod_rewrite и .htaccess, но это может быть немного сложно для вас. Вы все еще можете попробовать. – kmas

4

Моя первая идея состоит в том, что он будет назван ID (из БД - каждое имя будет уникальным)

Это правильный ответ.

, но когда кто-то скачать его, он будет иметь уродливое имя (ID)

Именно поэтому мы даем ему красивое имя в заголовке Content-Disposition.

0

есть другая идея использовать случайное число и из случайного числа перед именем файла

$random_digit=rand(0000,9999); 

$new_file_name=$random_digit.$file_name; 

или использовать последнюю идею и при загрузке или дисплей переименовать его без идентификатора

+0

Мне не нравится эта идея со случайным числом - есть очень небольшая вероятность, что у вас уже есть одно и то же имя (в больших количествах файлов). –

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