Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: путь к картинке с указанием диска  (Прочитано 30115 раз)
0 Пользователей и 5 Гостей смотрят эту тему.
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« : 22-08-2006 10:19 » new

если исходный код вот такой
<img src="e:/temp/img/img.gif"/>
то в MS IE картинка рисуется нормально, а в FireFox не рисуется совсем. как надо путь к рисунку с указанием диска прописать, чтобы рисунок рисовался в FireFox?
Записан

Славная трава...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 22-08-2006 14:05 » 

file:///e:/temp/.....

Урл может быть относительным и абсолютным. Твой - относительный, хотя, как я понимаю, хотела абсолютный.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #2 : 23-08-2006 07:21 » 

RXL, так тожет не работает. как выяснилось, запрещено политикой безопасности firefox.

пришлось ваять сервлет, который отправляет указанный файл клиенту.

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

Славная трава...
Chuda
Гость
« Ответ #3 : 23-08-2006 12:12 » 

а сделать удобоваримые симлинки на картинки - вариант?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 23-08-2006 12:52 » 

Наташ, попробуй описать проблему подробне - пока картина в тумане. Может ты хочешь правильно, но действительно нарушаешь политику безопасности, а может - не правильно...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #5 : 24-08-2006 09:45 » 

Рома, я делаю табличку, которая будет отображать разнообразные данные на html-странице.
если данное будет рисунком, его, соответственно, и надо будет отображать рисунком.
как рисунки будут храниться, неизвестно. точнее, табличку хотят использовать в разных приложениях, и в этих приложениях используются разные способы хранения бинарных данных.
если эти рисунки хранятся в базе данных, то проблем нет: сервлет по заданным параметрам находит массив байт и отправляет клиенту.
а вот если в базе данных хранятся только пути к рисункам, можно же было бы прямо в источник img подставлять этот путь.. дак firefox не разрешает... пришлось тоже делать сервлет...

Чуда, как из e:/temp/img/img.gif сделать удобоваримый симлинк?
Записан

Славная трава...
Chuda
Гость
« Ответ #6 : 24-08-2006 10:37 » 

Я так понимаю, что раз нестандартные имена каталогов, то это Windows. Специфики Windows я не знаю.
Но смысл в том, чтобы сделать в той же директории, в которой лежит скрипт, формирующий страницу, каталог например e_tmp_img, и в скрипте сначала той самой windows-специфичной командой создавать симлинки, а уже на них ссылаться.
В общем, что-то типа такого:
ln -s e:/temp/img/img.gif e_tmp_img/img.gif && echo "<img src=\"e_tmp_img/img.gif\" />"
это допустимый вариант?
Записан
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #7 : 25-08-2006 07:19 » 

работать в конечном итоге будет все на linux, но разрабатываю-то я на windows... так что надо сделать нечто универсальное..
я, кажется, поняла, что такое симлинки Улыбаюсь нодо будет подумать об этом, но на вскидку кажется, что сервлет все-таки проще. тем более, что он уже сделан Улыбаюсь
Записан

Славная трава...
Chuda
Гость
« Ответ #8 : 25-08-2006 07:24 » 

так если будет на Linux, то проблема сама собой снимется))) Там нет нестандартных обозначений в именах директорий.
Записан
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #9 : 25-08-2006 09:47 » 

так а отлаживать как?

и как тогда будет выглядеть путь к картинке, если для всех файлов будет выделена, например, директория на сервере, и они там будут все в кучу свалены? что-то, типа root/temp/img/img.gif ?
Записан

Славная трава...
Chuda
Гость
« Ответ #10 : 25-08-2006 10:02 » 

кстати, вообще поднимать сервак на виндах в отладочных целях можно не всегда ибо вот подобные платформенно-зависимые фишки не так уж и редки. Лучше или завести отдельный специальный комп или хотя бы в вмваре установить ту ОС, которая на сервере (удивительно, что там Linux, для серверов есть системы и получше).
Ну а если попроще, то вполне вариант - для винды сделать этот хитрый сервлет, а потом, на месте, доотладить с учётом платформозависимых особенностей. Так будет проще всего на мой взгляд.
Хотя я и вовсе пишу всё сразу на сервере, но к этому никого не призываю))))
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 25-08-2006 18:49 » 

Цитата
а вот если в базе данных хранятся только пути к рисункам
Ничего не понимаю. Ссылки на где? На сервере?
Не понятна схема работы. У тебя клиент и сервер - одна машина?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #12 : 28-08-2006 07:35 » 

RLX, да. ссылки к файлам на сервере. или такого не может быть?

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

Славная трава...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 28-08-2006 08:47 » 

Наташ, по моему это не правильно в принципе. Если web-клиент работает с web-сервером, то давать ссылки на подгружаемые ресурсы по другому протоколу не корректно. Правильно будет дать клиенту url, по которому сервер выдаст картинку по тому же протоколу (http).
Так ты и политику нарушать не будешь, и при изменении условий работоспособность сохранится.

Т.е., тебе нужно:
1. смапировать директорию с картинками на некий www-путь и сделать его доступным пользователю.
2. преобразовать прямой путь к файлу в url.

Это самое простое решение.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #14 : 28-08-2006 10:24 » 

а как смапировать директорию на www-путь?
Записан

Славная трава...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #15 : 28-08-2006 12:12 » 

См. в настройках web-сервера. Какой сервер?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #16 : 29-08-2006 07:44 » 

у меня - tomcat 5.5.9
на сервере - sun application server.
Записан

Славная трава...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 29-08-2006 08:26 » 

С Tomcat не связывался - не знаю, можно ли там передавать просто файлы, а не web-сервисы вызывать. В крайнем случае, нужен web-сервис, который будет пересылать картинки.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #18 : 29-08-2006 08:32 » 

это сложно. пока будет сервлет...
Записан

Славная трава...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 29-08-2006 08:40 » 

Разве это настолько сложно?
Логика простая:
1. Принять параметер - оносительный путь к файлу. Проверить допустимость пути
2. Проверить наличние файла. Нет файла - 404.
3. Определить MIME-тип файла. Передать его в заголовке Content-type.
4. Передать сам файл.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #20 : 29-08-2006 10:54 » 

так а сервлет то же самое и делает. или я что-то неправильно понимаю?
сервлет принимает параметром путь к файлу (e:/temp/img/img.gif). прверяет, есть ли файл. если есть, передает. Content-type передает application/octet-stream...
Записан

Славная трава...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #21 : 29-08-2006 10:58 » 

Falsehood, если так, то какие могут быть притензии к Firefox-у?
В общем, я ничего понять не могу - показания путаные.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #22 : 30-08-2006 09:52 » 

Ром, так потому, что в firefoxe не работает <img src="e:/temp/img/img.gif"/> Улыбаюсь
пришлось сделать так <img src="/ShowPictureServlet?fileName=e:/temp/img/img.gif"/> так работает и в IE, и в firefox-е.
спрашиваю, как еще можно, потому что как-то топорно смотрится мое решение
Записан

Славная трава...
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #23 : 30-08-2006 09:58 » 

Нормально смотрится, за исключением того, что в ссылке проставлен полный путь.

Стоит переделать сервлет, чтобы он принимал относительный путь
<img src="/ShowPictureServlet?fileName=img.gif"/>
Сервлет сам знает, где находится каталог с файлами, и в ответ на этот запрос вернёт файл img.gif из каталога e:/temp/img/
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #24 : 30-08-2006 10:02 » 

точно. так и сделаю.
спасибо
Записан

Славная трава...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #25 : 30-08-2006 13:11 » 

Вот что значит правильно сформулировать вопрос! Иначе 20-и постов мало для проникания в суть вопроса...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #26 : 31-08-2006 07:34 » 

Ром, я про сервлет уже в процессе обсуждения подумала, поэтому сразу о нем не сказала Улыбаюсь
Записан

Славная трава...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines