Denniz
Erfahrenes Mitglied
Hi Leute,
ich lade ein Bild in mein Flashfilm, das Bild wird anschließend per AS3 in ein ByteArray gewandelt und an ein PHP skript geschickt (klappt auch). Das Skipt soll nun die empfangenen Daten (das Bild im Binärformat) auf dem Server speichern.
Was ist zu tun?
Wahrscheinlich nicht so wichtig aber trotzdem hier die AS Klasse mit der saveJPG() Methode:
ich lade ein Bild in mein Flashfilm, das Bild wird anschließend per AS3 in ein ByteArray gewandelt und an ein PHP skript geschickt (klappt auch). Das Skipt soll nun die empfangenen Daten (das Bild im Binärformat) auf dem Server speichern.
Was ist zu tun?
PHP:
<?php
if(isset($GLOBALS['HTTP_RAW_POST_DATA'])){
// echo 'TRUE'; - Ja, die Daten kommen korrekt an
$data = $GLOBALS['HTTP_RAW_POST_DATA'];
$name = $_GET['pic'];
//..wie kriegt man das Bild jetzt gespeichert....
}else {
echo 'No Data';
}
?>
Code:
package {
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.display.Sprite;
import flash.events.Event;
import flash.display.StageScaleMode;
import flash.display.StageAlign;
import flash.net.FileReference;
import flash.net.URLRequest;
import com.adobe.images.JPGEncoder;
import flash.net.URLRequestHeader;
import flash.utils.ByteArray;
import flash.net.URLRequestMethod;
import flash.net.navigateToURL;
public class EncodeData extends Sprite {
private var loader:Loader;
public function EncodeData():void {
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
loader = new Loader();
loader.load(new URLRequest('baum.jpg'));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
}
private function onComplete(e:Event):void {
this.addChild(loader);
saveJPG();
}
private function saveJPG():void {
var bmd:BitmapData = new BitmapData(loader.width, loader.height);
bmd.draw(loader);
var encoder:JPGEncoder = new JPGEncoder(80);
var byteArray:ByteArray = encoder.encode(bmd);
//Mime Type
var header:URLRequestHeader = new URLRequestHeader("Content-Type", "application/octet-stream");
var saveJPG:URLRequest = new URLRequest("http://localhost/save.php?img=pic.jpg");
saveJPG.requestHeaders.push(header);
saveJPG.method = URLRequestMethod.POST;
saveJPG.data = byteArray;
navigateToURL(saveJPG, '_blank');
}
}
}