0
파일 이름으로 채워진 DataGrid와 함께 Flash 응용 프로그램이 있고 사용자가 해당 표에서 여러 파일을 검사하여 로컬 드라이브에 다운로드 할 수있게하려고합니다. 파일은 데이터베이스의 blob 필드에 저장되며, php ro를 사용하여 검색합니다. URLLoader 및 FileReference를 사용하여 파일을 다운로드하려고 시도했지만 작동하지 않습니다.여러 파일 다운로드 flash
이private function downloadSelected():void {
var dp:Object=dg.dataProvider;
var cursor:IViewCursor=dp.createCursor();
while(!cursor.afterLast)
{
//Alert.show(cursor.current.IsChecked.toString());
if (cursor.current.IsChecked.toString()=="true") {
//myAmostras.push(cursor.current.CodBarras.toString());
//nenhumaAmostra=false;
var u:URLRequest= new URLRequest;
var variables:URLVariables = new URLVariables();
variables.amostras = cursor.current.CodBarras.toString();
variables.disposition="attach";
u = new URLRequest("savereports.php");
u.method = URLRequestMethod.POST;
u.data=variables;
pdfloader = new URLLoader();
//pdfloader.dataFormat=URLLoaderDataFormat.BINARY;
pdfloader.addEventListener(Event.COMPLETE, completeHandler,false,0,true);
pdfloader.addEventListener(IOErrorEvent.IO_ERROR, downloadError);
try {
pdfloader.load(u);
} catch (error:Error) {
Alert.show("Unable to load requested document.");
}
}
cursor.moveNext();
}
}
private function downloadError(event:Event):void {
Alert.show("Error loading file");
}
private function completeHandler(event:Event):void {
var myFileReference:FileReference = new FileReference();
myFileReference.save(event.target.data);
}
이 사람이 나를 도울 수 : 다음 코드인가? 대신은 URLLoader의 FileReference.download를 사용
는
을 던져? (즉, 무슨 일이 일어나고 있습니까?) – IronMan84
자세히 조사하지는 않았지만 그렇게 할 수 있다고는 생각하지 않습니다. 당신은 URLLoader를 사용하지 않아야한다고 생각합니다. 대신 FileReference.dowload() 메서드를 사용해야합니다. 또한 사용자 상호 작용이 필요한 보안 제한이 있습니다. AIR 응용 프로그램을 작성하지 않는 한 사용자 상호 작용없이 스크립트만으로 파일을 다운로드 할 수 없습니다. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/FileReference.html#download() –
감사합니다. Lars Blåsjö. 나는 Filereference를 시도하고 이제 목록에서 첫 번째 파일을 다운로드 할 수 있습니다. 다른 것들은 예외를 던집니다. 둘 이상의 파일에 대해 어떻게 작동합니까? –