코드 흐름은 다음과 같습니다.flex 4 또는 flex 4.5에서 사용자 상호 작용없이 서버에서 파일을 다운로드하는 방법은 무엇입니까?
사용자가 페이지에서 '세부 정보 다운로드'버튼을 클릭하면 처리기가 RPC 메서드 호출을 s : CallResponder -> RPC 메서드를 사용하여 호출하면 URL을 생성하고 반환합니다. 어디서 파일을 다운로드 할 것인가?> CallResponder의 성공 이벤트 핸들러는 파일 다운로드에 FileRefrence.download()가 사용되지만 다음과 같은 오류가 발생하는 URL을 얻습니다. 팝업 윈도우를 디스플레이하는 것들은 마우스 클릭 또는 버튼 누름과 같은 사용자 상호 작용시에만 호출 될 수 있습니다. flash.net::FileReference/download에서 는()
코드는 다음과 같습니다
<fx:Script>
<![CDATA[
import mx.rpc.CallResponder;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
protected function downloadButtonClickHandler(event:MouseEvent):void
{
var web_service:IWeb_service = Web_service.getInstance();
getDetails.token = web_service.getURLDetails();
}
public function onGetDetailsResult(event:ResultEvent):void
{
var response:URLResponse = event.result as URLResponse;
if(response != null && response.url != null)
{
var request:URLRequest = new URLRequest(response.url);
fileReference.download(request, "test.html");
}
}
public function onGetDetailsFault(event:FaultEvent):void
{
Alert.show("Error in downloading details");
}
]]>
</fx:Script>
<fx:Declarations>
<net:FileReference id="fileReference" />
<s:CallResponder id="getDetails" result="onGetDetailsResult(event)" fault="onGetDetailsFault(event)"/>
</fx:Declarations>
<s:HGroup width="100%" height="100%">
<s:Button label="Download Details" id="downloadButton"
click="downloadButtonClickHandler(event)" />
</s:HGroup>
파일의 FileReference가 INT 그의 사건이 일어나고 있지 않은 사용자 상호 작용을 필요로 이것을 달성하는 다른 방법이 있나요?
사용자가 다운로드를 클릭하기 전에 다운로드 URL을로드 할 수 있습니까? – kreek
사용자가 실제로 로컬에서 다운로드 할 위치를 지정해야하기 전에 파일을 다운로드 할 수 있습니다. 아아, 사용자의 컴퓨터에서 원하는 위치에 파일을 저장할 수는 없으므로 보안상의 주요 결함이 될 수 있습니다. –