Я использую этот код для преобразования изображения в BitmapData и хранения JPG в ByteArray.
import com.adobe.images.JPGEncoder; var jpgSource:BitmapData = new BitmapData (img_mc.width, img_mc.height); jpgSource.draw(img_mc); var jpgEncoder:JPGEncoder = new JPGEncoder(85); var jpgStream:ByteArray = jpgEncoder.encode(jpgSource); // here we need some code to send the bytearray but I lack enough knowledge to do it by myself
Теперь я хочу сделать следующее: 1. отправить ByteArray на PHP; 2. PHP должен хранить физический image_id.jpg на сервере; 3. Затем PHP должен вернуть URL-адрес изображения во Flash;
Это возможно? Как?
Первыми строками PHP могут быть:
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])) { // get bytearray $jpg = $GLOBALS["HTTP_RAW_POST_DATA"]; // but I don't know how to save the image on disk and how to return the URL of the //image }
Благодаря!
часть as3:
import com.adobe.images.JPGEncoder; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequestHeader; import flash.net.URLRequest;
import com.adobe.images.JPGEncoder; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequestHeader; import flash.net.URLRequest;
var jpgSource: BitmapData = new BitmapData (img_mc.width, img_mc.height);
jpgSource.draw (img_mc);
var jpgEncoder: JPGEncoder = новый JPGEncoder (85);
var jpgStream: ByteArray = jpgEncoder.encode (jpgSource);
// задаем заголовок, метод и данные запроса
var header: URLRequestHeader = new URLRequestHeader («Content-type», «application / octet-stream»);
var loader: URLLoader = new URLLoader ();
// отправляет jpg байты в скрипт saveJPG.php
var myRequest: URLRequest = новый URLRequest ("saveJPG.php");
myRequest.requestHeaders.push (заголовок);
myRequest.method = URLRequestMethod.POST;
myRequest.data = jpgStream;
Loader.load (myRequest);
// fire complete event;
loader.addEventListener (Event.COMPLETE, сохранены);
функция сохранена (e: Событие)
{
// отслеживаем имя файла изображения
следа (loader.data);
}
часть php (saveJPG.php):
if ( isset ( $GLOBALS["HTTP_RAW_POST_DATA"] )) {
if ( isset ( $GLOBALS["HTTP_RAW_POST_DATA"] )) {
//the image file name $fileName = 'img.jpg'; // get the binary stream $im = $GLOBALS["HTTP_RAW_POST_DATA"]; //write it $fp = fopen($fileName, 'wb'); fwrite($fp, $im); fclose($fp); //echo the fileName; echo $fileName;
} else echo 'result = Произошла ошибка.';