![]() |
|
||||||||||
|
|||||
|
Всем привет! Возникла небольшая проблемка...
Загружаю на сервер картинки через Flex и PHP, во Flex по клику на кнопку "Load" выбираю с помощью FileReference изображение, затем в php файл передаю название изображения и путь,с помощью php кидаю изображение в нужное место на сервере и сохраняю путь данного изображения в таблице temp_url которая хранит путь этого единественного изображения(т.е. путь изображения выбранного пользователем в данный момент). Изображение на сервере переименовывается по схеме id_work+1(это айдишка последней записи в таблице works которая хранит путь всех добавленных изображений). После клика по кнопке "Save" путь из таблицы temp_url сохраняется в таблицу works. Таким образом получается что если пользователя ошибся в выбранном изображении и не нажал кнопку save, он просто выбирает изображение заново путь к изображению снова генерится по вышеуказанной формуле(id_work+1) а по скольку запись в таблицу works не была добавлена то id-шка id_work не изменилась. И путь остаётся прежним ошибочное изображение на сервере просто заменяется новым. При выборе изображения я его сразу отображаю в Image. Только если вышеописанная ситуация случилась(пользователь ошибся и заново выбрал изображение). Image отказывается показывать новую картинку а показывает старую, если кэш удалить перед выбором картинки то всё ОК - новая картинка отображается. Может есть какие сойства что бы Flex не давал браузеру кэшировать путь к картинке? Подскажите плз какой есть выход из данной ситуации? |
|
|||||
|
Modus ponens
|
Хороший, годный велосипед. А зачем вы себе жизнь усложнили, чем плохо было бы просто использовать полное имя файла в качестве уникального ключа? А заодно бы исключили ситуации случайной записи поверху, копирования файлов с одинаковым именем и т.п. Зачем эти махинации с переименованиями?
__________________
Hell is the possibility of sanity |
|
|||||
|
А если имя файла совпадёт? Ненароком заменим другой файл....
А махинации затем что: 1. Пользователь выбрал изображение оно сохранилось на сервер, но он шибся и ему нужно другое 2. Он выбирает другое изображение а так как кнопка save нажата не была, мы не добавили запись в таблицу хранящую изображения и то ненужное изображение просто заменилось нужным 3. Пользователь нажал save добавилась запись в таблицу works - все счастливы. Только зараза image который отображает изображение выбранное пользователем, кэширует этот путь и не хочет смотреть что там на сервере по нему поменялось, и показывает старое изображение... Неужели нельзя ему как-нить сказть что нужно каждый раз путь проверять? Если нет то буду по вашему совету делать, спасибо заранее. |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 211
|
Абзац! Чего-то я тоже не понял этих диких манипуляций с созданием папок, путей и дублей файлов ... А нельзя ли просто хранить ВСЕ файлы в одной папке с именами, скажем, сгенеренными UUID, и сопоставлениями в таблице. А отдавать не ссылку на файл (путь), а сам файл в бинарном потоке с соответствующими заголовками? Ну, и к запросу добавлять рандомчик, чтобы не было кеширования.
|
|
|||||
|
По совету wvxvw использую полное имя файла в качестве уникального ключа, и не усложню себе жизнь. Спасибо))))
|
|
|||||
|
Регистрация: Jun 2010
Адрес: Беларусь, Гродно
Сообщений: 58
|
У тебя браузер кешит картинку, так?
Когда урл к картинке каждый раз генерь разный, скажем: http://localhost/images/myImage.jpeg?random=1234567 и тд |
|
|||||
|
Modus ponens
|
Ну так навскидку, попробуйте скопировать "случайно" файл с именем, как у уже существующего в ту же папку - первая реакция системы будет "а может не надо", ну так там пользователя можно и остановить, и не дать сохранить, ну, соответственно, не делать никаких записей в базу. Как бы ОС не позволит просто создать 2 файла с одинаковым именем, так что при попытке, нужно будет пользователя торможнуть и спросить, а может он перезаписать хотел?
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 05.07.2010 в 19:11. |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:46. |
|
|
« Предыдущая тема | Следующая тема » |
|
|