Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.05.2009, 20:43
Demoralizator вне форума Посмотреть профиль Отправить личное сообщение для Demoralizator Найти все сообщения от Demoralizator
  № 1  
Ответить с цитированием
Demoralizator

Регистрация: May 2009
Сообщений: 20
По умолчанию Сохранение JPG через браузер

помогите разобраться.
нашёл немало тем по вопросу кодирования и сохранения Jpg (png) из bitmap dat'ы, но везде рассматривается вариант с использованием fopen/fwrite, т.е. запись напрямую на диск. здесь для мня всё понятно и работает. но меня интересует вариант сохранения через браузер (пример из книги Learning action script 3.0):

Код AS3:
function onClick(evt:MouseEvent):void{
	var jpgEncoder:JPGEncoder= new JPGEncoder();
	var bArray:ByteArray= jpgEncoder.encode(bmd);// bmd - готовая bitmap data
 
	var uR:URLRequest= new URLRequest("http://localhost/save-file.php?name=1.jpg");
	uR.data= bArray;
	uR.method= URLRequestMethod.POST;
	uR.contentType= "application/octet-stream";
 
	navigateToURL(uR, "_blank");
}
PHP код:
<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])) {
    
$jpg $GLOBALS["HTTP_RAW_POST_DATA"]; 
    
$img $_GET[‘img’];
    
header("Content-Type: image/jpeg");
    
header("Content-Disposition: attachment; filename=".$img);
    echo 
$jpg;
} else {
    echo 
"Encoded JPEG information not received."; } ?>
в итоге открывается новая вкладка в браузере:
Код:
http://localhost/save-file.php?name=1.jpg?%D1%8F%D0%A8%D1%8F%D0%B0
но условие не срабатывает:
Код:
Encoded JPEG information not received.
т.е. $GLOBALS["HTTP_RAW_POST_DATA"] остаётся пустой. если же вместо navigateToURL использовать URLLoader (и fopen/fwrite в php) то пишется нормально.
подскажите где затык?
спасибо

Старый 11.05.2009, 21:38
TERRORist вне форума Посмотреть профиль Отправить личное сообщение для TERRORist Найти все сообщения от TERRORist
  № 2  
Ответить с цитированием
TERRORist
 
Аватар для TERRORist

блогер
Регистрация: Jun 2005
Адрес: RU
Сообщений: 1,540
Записей в блоге: 12
на нормальных хостингах register_globals = Off

Старый 11.05.2009, 21:50
Demoralizator вне форума Посмотреть профиль Отправить личное сообщение для Demoralizator Найти все сообщения от Demoralizator
  № 3  
Ответить с цитированием
Demoralizator

Регистрация: May 2009
Сообщений: 20
возможно, но fwrite пишет тоже из $GLOBALS["HTTP_RAW_POST_DATA"].

Старый 11.05.2009, 23:45
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 4  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Код AS3:
private function sendImage(png:ByteArray):void
{
	var request:URLRequest = new URLRequest("scripts/downloadImage.php" );
	request.data = png;
	request.method = URLRequestMethod.POST;
	navigateToURL( request, "_blank" );
}

PHP код:
<?php
header
('Content-disposition: attachment; filename=myImage.png');
header("Content-type: application/png");

readfile('php://input');
?>
я так пнг открывал, правда давно это было.
png - это уже заенкоденный байтаррай.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.


Последний раз редактировалось GBee; 11.05.2009 в 23:49.
Старый 12.05.2009, 02:31
Demoralizator вне форума Посмотреть профиль Отправить личное сообщение для Demoralizator Найти все сообщения от Demoralizator
  № 5  
Ответить с цитированием
Demoralizator

Регистрация: May 2009
Сообщений: 20
GBee, спасибо! так получилось.
т.е. (просто чтоб расставить точки над "ъ") вариант с $GLOBALS["HTTP_RAW_POST_DATA"] вообще не катит? как-то же fwrite из него прочитал.

Старый 12.05.2009, 07:57
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 6  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Я не знаю, я в пхп не силен :о)
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:30.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:30.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.