이미지를 Flash로로드하고 JPGEncoder를 사용하여 이미지를 ByteArray로 인코딩 한 다음 bytearray를 파일에 쓰는 AMF PHP로 보냅니다. 이 모든 것이 제대로 작동하는 것으로 보입니다. 결과 파일을 Photoshop CS4에서 다운로드해도됩니다. 내가 바탕 화면에서 그것을 열거 나 다시 Flash에서 그것을 나던 작업을 열려고하면 ... Picasa가 내 기본 이미지 브라우저가 말한다 "잘못된"여기 왜 JPGEncoded bytearray가 AS3에서 AMFPHP로 전송되어 유효하지 않은 이미지가 생성됩니까?
내가 파일로 된 ByteArray를 작성하는 데 사용하는 코드는 -$ jpg = $ GLOBALS [ "HTTP_RAW_POST_DATA"]; file_put_contents ($ filename, $ jpg);
그게 ... NetConnection 클래스를 사용하여 서비스에 연결하고 전화를 걸면 jpg 데이터를 보내야합니까? JPGEncoder가이를 처리했다고 가정했습니다. 파일을 작성하기 전에 bytearray의 유효성을 검사하려면 어떻게해야합니까? 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가와 currentImageFilename--이 같은 --jpg_binary 당신의 두 개의 입력 인수를 받아들이는 기능이며, 추상화한다 이 일을 !! :(... 그래서 지금은 아무런 문제없이 파일을 쓰는 일반 오래된 PHP 페이지로 이미지를 보내고 있습니다 :) – undefined