Показать сообщение отдельно
Старый 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) то пишется нормально.
подскажите где затык?
спасибо