제대로 작동하도록 만드는이 작은 AIR 응용 프로그램을 가져올 수 없습니다. 무대에는 버튼 하나가 있으며, 사용자가 버튼을 누르면 파일 브라우저 (FileReference.browse() 함수)가 표시됩니다. 그들이 이미지 파일을 선택하면 이미지를 imgur.com 사이트 (http://www.api.imgur.com)에 업로드하고 싶습니다.AIR : POST 기반 웹 서비스 (AS3)로 FileReference.upload()를 사용하는 방법
imgur에서 응답을 받고 있는데 내 앱이 연결되었음을 알았지 만 "업로드 API에 이미지 데이터가 전송되지 않았습니다."라는 오류가 표시됩니다. 어떤 도움이라도 대단히 감사합니다!
패키지 {
import flash.display.MovieClip;
import flash.events.*;
import flash.net.*;
import flash.utils.ByteArray;
public class Document extends MovieClip
{
//file browser var
var myFileReference:FileReference = new FileReference();
//file loader var
private var loader:URLLoader;
//string constants
private const API_KEY:String = "******REMOVED*******";
private const UPLOAD_URL:String = "http://api.imgur.com/2/upload.xml";
public function Document()
{
// constructor code
browse_btn.addEventListener(MouseEvent.CLICK, browse);
}
function browse(e:MouseEvent)
{
var imagesFilter:FileFilter = new FileFilter("Images", "*.jpg;*.gif;*.png");
myFileReference.browse([imagesFilter]);
myFileReference.addEventListener(Event.SELECT, selectHandler);
myFileReference.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, responseHandler);
}
function selectHandler(e:Event):void
{
var vars:String = "?key=" + API_KEY + "&name=name&title=title";
var params:URLVariables = new URLVariables();
params.date = new Date();
var request:URLRequest = new URLRequest(UPLOAD_URL + vars);
//request.contentType = "application/octet-stream";
request.contentType = "multipart/form-data";
request.method = URLRequestMethod.POST;
request.data = params;
myFileReference.upload(request);
try
{
myFileReference.upload(request);
}
catch (error:Error)
{
trace("Unable to upload file.");
}
}
function responseHandler(e:DataEvent):void
{
trace("responseHandler() initaialized");
var res:XML = XML(e.data);
trace(res);
}
}
}
'FileReference'입니다 로컬 파일에 접근하기 위해서만 - URLLoader 인스턴스를 사용하여 서버에 raw 이미지 데이터를 보내야한다. flashplayer에 파일을 열고 (FileReference를 사용하여) + BitmapData 객체를 만든 다음 ByteArray (PNGEncoder/JPEGEncoder ...)로 변환하여이 "raw"데이터를 섬기는 사람. – pkyeck
도움을 주셔서 감사합니다! 당신이 제안한 방법으로 작동하게했습니다. 그러나, 나는 시도하고 큰 파일 (5-7mb) swf 잠금 및 io 스트림 오류를 반환합니다. 어떤 생각? – Prefix
음, 잘 모르겠 음. 플래시는 최대 100MB의 파일을 처리 할 수 있어야합니다. 정확히 무엇이 오류입니까? 어쩌면 imgur-API에서 업로드 제한이 있습니다!? – pkyeck