![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как подгружать картинки в страницу, которую генерит TСPServer?
arche © (2003-10-27 09:25:00)
Я создал простой сервер на TTCPServer, который у меня нормально отдает HTML документ, но есть такая проблема: как подгружать в этот документ картинки и т.п., т.е. где надо указать путь ассоциированный с localhost, откуда эти картинки бы подгружались?
arche (2003-10-29 11:56:00) [1]
Спасибо за совет, учту!
savva (2003-10-29 11:51:00) [2]
этот же самый совет и тебе пригодится..
arche (2003-10-29 11:37:00) [3]
Все, мне уже тут один чел прямо указал, где конкретно копать и в чем я был не прав. Всем огромное спасибо за внимание,
особенно "Reindeer Moss Eater" :) Ему же совет: поменьше демагогии, побольше конкретики.
savva (2003-10-29 11:27:00) [4]
ты бы привел бы сюда все свои "три-четыре" запроса от клиента - и тебе бы показали где браузер хочет картинку..
Плохиш_ (2003-10-29 11:26:00) [5]
Короче, мы все побежали изучать программу TINY.EXE
arche (2003-10-29 11:24:00) [6]
Ладно, оюъясню на примере конкретном.
Есть такая прога TINY.EXE от компании ritlabs (www.ritlabs.com)
Короче она на дельфях написана и все такое. Можете запускать хоть локально хоть нет. Картинки отображает так, как мне бы хотелось. Т.е. там задается путь к рутовой директории, а оттуда уже и ищутся картинки и загружаются.
Я в ней разбирался разбирался, но так и не понял как там это делается. Слишком замороченный код для меня :(
Вопрос такой (для тех кто сталкивался с этим): как это делается??? Т.е. как и где указать рутовe. директорию, чтобы оттуда нормально загружались картинки при таком HTML:
<img src="a.gif" />
??
Плохиш_ (2003-10-29 11:16:00) [7]
>Reindeer Moss Eater © (29.10.03 11:14) [41]
> У меня не так много кофейной гущи осталось
:-)
Почему-то вопрошающие всегда считают, что штатным телепатам отпуска и выходные не положены ;-))
Плохиш_ (2003-10-29 11:14:00) [8]
Ах, так он у тебя ещё и локально работает?
Ню, ню
Если станицы смотришь в браузере (будем надеяться), то урлы с "/..." ищутся от адреса, а без от всей строчки в строке адреса.
Reindeer Moss Eater (2003-10-29 11:14:00) [9]
Короче: изучи спецификацию протокола HTTP.
У меня не так много кофейной гущи осталось
arche (2003-10-29 11:07:00) [10]
> Плохиш_
,
Какой конфиг? У меня запущен только мой TCPServer который ловит запросы и все.
и никаких там апачей с конфигами.
arche (2003-10-29 11:04:00) [11]
В смысле эти заголовки приходят в одной пачке при запросе URL.
т.е. на событие OnAccept я начинаю принимать пакет заголовков:
HTTP 1/1 ..
Contnt-Type ..
..
Server ..
и ничего про запрос картинки нету :(
и все. больше ничего до запроса новой страницы не приходит.
Reindeer Moss Eater (2003-10-29 11:03:00) [12]
Плохиш_
Сначала надо догадаться, что у его самописного веб-сервера вообще есть файл с конфигом
Плохиш_ (2003-10-29 11:00:00) [13]
Блин детский сад какой-то :-(
И никто так и не догадался заглянуть в конфиг-файл веб-сервера :-(
arche (2003-10-29 10:59:00) [14]
Да и заголовков этих приходит всего четыре что-ли..
Reindeer Moss Eater (2003-10-29 10:58:00) [15]
Вот когда пришел очередной заголовок и в нем просьба выдать файл a.gif вот тогда и выведи в лог содержимое текущего каталога сервера
arche (2003-10-29 10:54:00) [16]
Ну приходят ко мне заголовки и все.
что я там могу еще увидеть??
Reindeer Moss Eater (2003-10-29 10:48:00) [17]
Стало быть ты руками реализуешь HTTP протокол?
Тогда вообще не понимаю твоего вопроса.
Все данные запросов клиента проходят через твои руки.
arche (2003-10-29 10:45:00) [18]
ну это в Indy компоненте.
А в моем случае (TTCPServer) этого сделать нельзя что-ли?
Reindeer Moss Eater (2003-10-29 10:39:00) [19]
OnCommandGet(AThread: TIdPeerThread; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
arche (2003-10-29 10:35:00) [20]
> Поймай момент прихода запроса от клиента на катинку
Как поймать этот момент?
У сервера есть только эти события:
OnAccept
OnCreateHandle
OnDestroyHandle
OnGetThread
OnListening
У меня весь функционал прописан в OnAccept().
(Иногда возникает событие OnGetHandle, но я так и не понял, зачем оно и когда возникает :( )