![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Raily |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 146 Регистрация: 25.9.2006 Репутация: нет Всего: нет |
У меня такой вопрос - я произвожу загрузку файла на сервер (upload), при этом названием загруженного файла должен быть его id (auto_increment) в БД, и если файл не был загружен, то его название в БД писать не нужно.
Я сейчас делаю это таким образом - сначала записываю в БД файл с текущим названием, чтобы знать его id, затем беру id и при загрузке переименовываю файл в id.расширение и затем если не было ошибки загрузки, то меняю в БД название файла на новое, а если файл не был загружен по каким-либо причинам (например, запрещено загружать файлы с таким расширением), то удаляю запись по данному файлу из БД. Но может кто подскажет, как это всё можно сделать проще? |
|||
|
||||
| Mavrun |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 25.11.2007 Репутация: 2 Всего: 13 |
а не проще ли сначала загрузить, затем проверить загрузился ли он и всё ли впорядке, и только потом проводить чтение и делать запись в БД? Т.к. если файл не был загружен - зачем обращаться в базу?
А что касается id, то присваивать его можно напрямую. То есть: 1) заливаем файл и проверяем его. если всё нормально, идём далее 2) вытаскиваем из базы номер последнего id 3) переименовываем файл как последний_id+1.[расширение] 4) делаем запись в базу, присваивая в качестве id последний_id+1 |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 2 Всего: 71 |
а может вообще убрать из базы название файла? У меня есть пара таких проектов.. Я записываю данные в таблицу, получаю ID и просто сохраняю файл в определённой папке.. А при выводе просто проверяю есть ли файл с таким ID.. не вижу смысла лишние данные хранить в таблице если имя файла соответствует ID записи
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Mavrun |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 25.11.2007 Репутация: 2 Всего: 13 |
кстати да, логично: зачем держать второе поле с именем файла, если оно идентично другому полю.
|
|||
|
||||
| Raily |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 146 Регистрация: 25.9.2006 Репутация: нет Всего: нет |
по поводу поля файла - у меня идёт закачка файлов и приложений к файлам. У файлов название = id, а у приложений название = id файла_id приложения, и ещё я к имени файла прибавляю время закачки в одну строку, чтобы не было проблем с кэшем, поэтому я не совсем правильно написала в первом посте, имя фалйа не только его id
Добавлено через 2 минуты и 31 секунду
думала по поводу самой определять, что за id был, но может быть такая проблема - если перед закачкой файла несколько файлов было удалено - тогда id нового файла не будет равен id последнего +1, но будет равен id последнего файла+ количество удаленных файлов +1, как-то так, если я auto_increment использую |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |