Просмотр полной версии : Как в одном скрипте отправить и картинку и переменные?
Флэш передаёт запрос:
loadMovie('url/myDB.php', 'myMC', 'POST');
соответственно передаются переменные:
id=1; // идентификатор картинки
comment=''; // текстовый комментарий к картинке
myDB.php делает запрос в таблицу бд по ключу id,
достаёт имя_файла_с_картинкой (pathname) и comment.
Дальше отправляем картинку:
Header ("Content-type: image/jpeg");
$fp= fopen($pathname, "rb");
fpassthru($fp);
Дальше мне нужно отправить comment.
Как это сделать?
echo '&comment='.$comment;
конечно не работает. Подозреваю, что перед этой строкой
нужно прописать другой заголовок или может как-то иначе?
Книга "Разработка Web-приложений на PHP и mySQL", Лаура Томсон, Люк Веллинг.
стр.346(левая в развороте) "...имеется возможность переслать несколько HTTP-заголовков и произвести несколько вызовов функции header() в одном и том же сценарии..."
стр347(правая в том же развороте) "...Посколько заголовок может быть переслан лиш один раз и это единственный способ сообщить броузеру, что передаётся изображение..."
Короче, я совсем запутался.
Сейчас я делаю так: из Флэш идут запросы 2-м РНР-файлам, они !оба лезут в таблицу!, один возвращяет картинку, второй - переменные. Работает. Но, думаю, за такое решение меня метлой гнать надо из кодинга.
Подскажите, как это правильно сделать (ну я не про метлу :D , а о том, что выше).
ты когданибудь выдел в новом окне с картинкой (только картинкой текст???) тотоже...
http://ua2.php.net/manual/ru/function.header.php
2 Pejone
Ну ты и реактивный. Скажите, мил. человек, у Вас в роду Нео небыло?
Пока я писал и отослал ответ в другом топике, - смотрю - а там уже твой!
По делу: Ты хоть понял сам, что написал?
Ты когданибудь видел в новом окне с текстом ( только текстом - картинку???) тотоже... :D
Спасибо за линьк. Особенно в ём (линке) умиляет, что весть техт на англицком, а все примечания начинаются так:
Замечание: There is a bug in Microsoft Internet Explorer 4.01 that prevents this from ...
Типа, шоб було, шоб зналы... :D
Оригинал написал(а) uri-uri
2 Pejone
Ну ты и реактивный. Скажите, мил. человек, у Вас в роду Нео небыло?
я внебрачный сын нео и троицы...
Оригинал написал(а) uri-uri
Пока я писал и отослал ответ в другом топике, - смотрю - а там уже твой!
это нададо же...
Оригинал написал(а) uri-uri
По делу: Ты хоть понял сам, что написал?
Ты когданибудь видел в новом окне с текстом ( только текстом - картинку???) тотоже... :D
http://www.flasher.ru/forum/sets/boeng/smilies/frown.gif
впихни сюда плейн текст я тебе памятник поставлю...
Оригинал написал(а) uri-uri
Спасибо за линьк. Особенно в ём (линке) умиляет, что весть техт на англицком, а все примечания начинаются так:
хм... по англицки не читаем... ну что ж тут медицина бессильна... хотя... www.php.net.ua
Оригинал написал(а) uri-uri
Замечание: There is a bug in Microsoft Internet Explorer 4.01 that prevents this from ...
ты в жизни описание багов не читал?
Оригинал написал(а) uri-uri
Типа, шоб було, шоб зналы... :D
тебе знать явно не помешает...
Конкретизирую вопрос:
Если нужно отправить во Флэш и картинку и параметры(комментарии к ней), придётся полюбому делать 2 запроса.
Но запроса к таблице в базе, где хранится путь к картинке и содержимое параметров достаточно одного.
Я додумался до решения путём сессий. Смысл следующий:
==================
myFlash:
при нажатии на кнопку
1-loadMovie('my1.php?id='+id, 'myMC1');
2-loadVar('my2.php?id='+id, 'myMC2');
my1.php:
Открываем сессию для этого id
Регистрируем параметры запроса, как переменные сессии.
Лезем в базу и достаём по ключу id ВСЁ(и картинку и параметры).
Сохраняем значения параметров из базы в переменных сессии (устанавливаем их)
Отправляем картинку.
my2.php:
При поступлении запроса на переменные
копируем параметры из сессии и отправляем во флэш
Ликвидируем сессию.
==================
Может ли 2-й запрос начать обрабатываться прежде, чем при обработке 1-го не будут установлены переменные сессии? Или он начнёт обрабатываться только по окончании первого?
Может посоветуете более оптимальный вариант?
Оригинал написал(а) uri-uri
1-loadMovie('my1.php?id='+id, 'myMC1');
2-loadVar('my2.php?id='+id, 'myMC2');
Если мне не изменяет память, эти операции асинхронны. Соответственно, есть шанс, что скрипты отработают в обратном порядке. :)
Неужели нельзя 1-ым скриптом считать ВСЁ (и картинку и комментарии ) из мускула и сохранить для второго скрипта в МОЗГЕ? Перерыл всё и нашёл только упоминания о записи/чтении в файл. Сессии - это сериализации, опять же - чтение/запись в файл
Но, и ежу понятно что файловые операции длиньше и ранимее для диска, чем работа с МОЗГОМ. Странно, что ничего про это не могу найти. Я в курсе, что HTTP - протокол БЕЗ СОХРАНЕНИЯ состояния. Но ведь речь ни о нём, а о внутрисерверных транзакциях. Если допустимо писать в файл, то почему нельзя выделить и работать с локальной областью памяти. Есть же тип таблиц мускула, которые размещаются в оперативке. ???? :confused:
2 Crazy
Я опытным путём (метками времени) определил, что это так. Но не до такой степени, что-бы в обратном порядке. Второй запрос начинает обрабатываться после первого. Иначе представь какой бардак - с какой страницы на какую переходит броузер?
Оригинал написал(а) uri-uri
Иначе представь какой бардак - с какой страницы на какую переходит броузер?
И часто тебе удается вбить а адресную строку браузера сразу два URL? :)
Механизм, между прочим, прост: если TCP-пакет с первым запросом в пути потеряется, то за время таймаута может успеть уйти второй запрос. Соответственно, дойдет он раньше, чем перепосланная копия первого. :)
2 Crazy
Я это делаю нажатием на 1 кнопку во флэш.
Механизм, между прочим, прост: если TCP-пакет с первым запросом в пути потеряется, то за время таймаута может успеть уйти второй запрос. Соответственно, дойдет он раньше, чем перепосланная копия первого.
Вопрос: что значит "перепосланная" ? Это флэш должен контролировать и повторять запрос, или броузер? О чём ты? Можно подробнее. Я хочу держать "доходимость" пакетов под контролем. Иначе неизбежны ошибки :(((
Оригинал написал(а) uri-uri
Вопрос: что значит "перепосланная" ?
Тебе стОит почитать, как работает протокол TCP.
Это флэш должен контролировать и повторять запрос, или броузер?
Для простоты будем считать, что это делает сетевой драйвер.
Я хочу держать "доходимость" пакетов под контролем. Иначе неизбежны ошибки :(((
Контроль доходимости осуществляет TCP. Автоматически.
мдя...
а ещё очень хочется чтобы ненадо было при этом всём к интернету подключаться...
а то...
мдя...
2 nagash
Когда с сервака возвращается html, идут запросы к Апачу для возврата каждой из картинок, имеющихся в нём (href=). Но в html уже находится соответствующий текст. (Либо статический, либо вставляемый серверным скриптом). Но в любом случае - что-бы увидеть страницу, достаточно 1 раз набрать uri.
Когда происходит то-же самое в флэш, необходимо для каждой картинки и текста сделать отдельный запрос. Поскольку во флэш нельзя кликнуть правой кнопкой мыши в контекстном меню по пункту "показать картинку", отсюда и вопрос.
Что-то непонятно?
а давно у нас картинки вставляются при помощи (href=)? =) я думал там где то надо src= прописать... мдя... отстаю...
по поводу остального... м... ну надеюсь тебе всё понятно =)
2 nagash
Блин, конечно src=! Извиняюсь, перепутал в сообщении. Но мысль, надеюсь понятна? мдя... отстаю... :))
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.