イメージをFlashに読み込み、JPGEncoderを使用してイメージをByteArrayにエンコードし、これをAMF PHPに送信して、bytearrayをファイルに書き出します。これはすべて正しく動作するように見え、Photoshop CS4で結果ファイルをダウンロードできます。私はデスクトップからそれを開くか、Flashで戻ってそれを開こうとすると、それは仕事をdoesntの... Picasaの私のデフォルトの画像ブラウザは「無効」と言うASGE3からAMFPHPに送信されたtearrayによるJPGEncodedが、無効なイメージをもたらすのはなぜですか?
ここで私は、ファイルへのByteArrayを書き込むために使用コードです -
$ jpg = $ GLOBALS ["HTTP_RAW_POST_DATA"]; file_put_contents($ filename、$ jpg);
これは... NetConnectionクラスを使用してサービスに接続して呼び出すと、「Im sending jpg data」と言う必要がありますか?私はJPGEncoderがそれを世話したと仮定しました。ファイルを作成する前に、どのようにバイトリストを検証できますか? MIMEタイプなどを設定する必要はありますか?
item.load();
function _onImageDataLoaded(evt:Event):void {
var tmpFileRef:FileReference=FileReference(evt.target);
image_loader=new Loader ;
image_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _onImageLoaded);
image_loader.loadBytes(tmpFileRef.data);
}
function _onImageLoaded(evt:Event):void {
bitmap=Bitmap(evt.target.content);
bitmap.smoothing=true;
if (bitmap.width>MAX_WIDTH||bitmap.height>MAX_HEIGHT) {
resizeBitmap(bitmap);
}
uploadResizedImage(bitmap);
}
function resizeBitmap(target:Bitmap):void {
if (target.height>target.width) {
target.width=MAX_WIDTH;
target.scaleY=target.scaleX;
} else if (target.width >= target.height) {
target.height=MAX_HEIGHT;
target.scaleX=target.scaleY;
}
}
function uploadResizedImage(target:Bitmap):void {
var _bmd:BitmapData=new BitmapData(target.width,target.height);
_bmd.draw(target, new Matrix(target.scaleX, 0, 0, target.scaleY));
var encoded_jpg:JPGEncoder=new JPGEncoder(90);
var jpg_binary:ByteArray=encoded_jpg.encode(_bmd);
_uploadService=new NetConnection();
_uploadService.objectEncoding=ObjectEncoding.AMF3
_uploadService.connect("http://.../amfphp/gateway.php");
_uploadService.call("UploadService.receiveByteArray",new Responder(success, error), jpg_binary, currentImageFilename);
}
私が手にcouldntの:AMFPHPでPOSTデータが抽象化されるので、あなたがあなたのAMFPHP UploadServiceスクリプトに必要なものをご_uploadService.call --jpg_binaryとcurrentImageFilename--このように2つの入力引数を受け取る関数でありますこれはうまくいく! :(...だから、私はファイルを問題なく出力するプレーンな古いPHPページに画像を送ります:) – undefined