您可以將一個ByteArray彈出到Loader中,然後使用FileReference來啓動下載對話框。
var file:FileReference = new FileReference();
var loader:Loader = new Loader();
//put loader in binary mode
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE, loader_completeHandler);
//I will assume you are getting an appropriate ByteArray from your stream
var data:ByteArray = new ByteArray();
loader.loadBytes(data);
private function loader_completeHandler(evt:Event):void {
//now pop a save window
file.save(loader.data,"default_file_name.png")
}
編輯
我也會認爲你這樣做是爲了流通過非標準協議,如AMF文件,否則,你只會輸出的文件通過HTTP和讓瀏覽器手柄其餘的部分。
我不理解你的問題或問題。是不是加載URL「直接向瀏覽器發送字節流」的行爲?要向瀏覽器發送「非網頁可訪問文件」,您必須編寫一些服務器端代碼 - 可通過網絡訪問 - 以加載文件並將字節流回。根據文件類型,不能保證該文件將顯示在瀏覽器中。這取決於文件類型和瀏覽器設置。例如,如果我的瀏覽器加載PDF,我可以選擇「打開」或「保存」,因爲這是我的瀏覽器設置的方式。 – JeffryHouser