Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запись названия файла в БД, упростить алгоритм закачки и записи файл 
:(
    Опции темы
Raily
Дата 25.4.2011, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 25.9.2006

Репутация: нет
Всего: нет



У меня такой вопрос - я произвожу загрузку файла на сервер (upload), при этом названием загруженного файла должен быть его id (auto_increment) в БД, и если файл не был загружен, то его название в БД писать не нужно.

Я сейчас делаю это таким образом - сначала записываю в БД файл с текущим названием, чтобы знать его id, затем беру id и при загрузке переименовываю файл в id.расширение и затем если не было ошибки загрузки, то меняю в БД название файла на новое, а если файл не был загружен по каким-либо причинам (например, запрещено загружать файлы с таким расширением), то удаляю запись по данному файлу из БД.

Но может кто подскажет, как это всё можно сделать проще?
PM MAIL   Вверх
Mavrun
Дата 25.4.2011, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 25.11.2007

Репутация: 2
Всего: 13



а не проще ли сначала загрузить, затем проверить загрузился ли он и всё ли впорядке, и только потом проводить чтение и делать запись в БД? Т.к. если файл не был загружен - зачем обращаться в базу?
А что касается id, то присваивать его можно напрямую. То есть: 
1) заливаем файл и проверяем его. если всё нормально, идём далее
2) вытаскиваем из базы номер последнего id
3) переименовываем файл как последний_id+1.[расширение]
4) делаем запись в базу, присваивая в качестве id последний_id+1
PM MAIL   Вверх
Gold Dragon
Дата 25.4.2011, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 2
Всего: 71



а может вообще убрать из базы название файла? У меня есть пара таких проектов.. Я записываю данные в таблицу, получаю ID и просто сохраняю файл в определённой папке.. А при выводе просто проверяю есть ли файл  с таким ID.. не вижу смысла лишние данные хранить в таблице если имя файла соответствует ID записи


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Mavrun
Дата 25.4.2011, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 25.11.2007

Репутация: 2
Всего: 13



кстати да, логично: зачем держать второе поле с именем файла, если оно идентично другому полю.
PM MAIL   Вверх
Raily
Дата 25.4.2011, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 25.9.2006

Репутация: нет
Всего: нет



по поводу поля файла - у меня идёт закачка файлов и приложений к файлам. У файлов название = id, а у приложений название = id файла_id приложения, и ещё я к имени файла прибавляю время закачки в одну строку, чтобы не было проблем с кэшем, поэтому я не совсем правильно написала в первом посте, имя фалйа не только его id

Добавлено через 2 минуты и 31 секунду
Цитата(Mavrun @ 25.4.2011,  10:38)
а не проще ли сначала загрузить, затем проверить загрузился ли он и всё ли впорядке, и только потом проводить чтение и делать запись в БД? Т.к. если файл не был загружен - зачем обращаться в базу?
А что касается id, то присваивать его можно напрямую. То есть: 
1) заливаем файл и проверяем его. если всё нормально, идём далее
2) вытаскиваем из базы номер последнего id
3) переименовываем файл как последний_id+1.[расширение]
4) делаем запись в базу, присваивая в качестве id последний_id+1

думала по поводу самой определять, что за id был, но может быть такая проблема - если перед закачкой файла несколько файлов было удалено - тогда id нового файла не будет равен id последнего +1, но будет равен id последнего файла+ количество удаленных файлов +1, как-то так, если я auto_increment использую
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0881 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.