2012-11-28 28 views
3

我正在嘗試將「文件預覽」功能添加到我的Flex應用程序。我有一個Flex中的LinkBut​​ton,點擊後應該在新的瀏覽器窗口中打開文件。我找到了一個有用的actionscript類,它可以正確格式化POST數據以將文件傳遞到HTML頁面。 POST數據文件放入URLRequest中,通過URLLoader發送到HTML頁面。如何使用通過Flex URLRequest發送的POST數據在HTML頁面上顯示JavaScript文件?

我的問題是,我不是非常有經驗的Javascript和我不知道如何告訴HTML頁面顯示由Flex應用程序發送的文件。經過無數次網絡搜索之後,我決定在這裏問問。我並沒有要求任何人爲我編寫代碼,我只需要一個好的地方(一個關鍵字,一個javascript函數來閱讀,有些東西)。

我想使用HTML和Javascript的組合來獲取POST數據並在瀏覽器中打開包含的文件。

其他重要信息:文件需要在IE8中顯示,正在顯示的文件主要是圖片文件,PDF文件或Word文檔。

編輯: 以下是我忘記提及的一些信息。我想要顯示的文件存儲在數據庫中。我從那裏獲取文件並將其作爲ByteArray存儲在自定義類中。然後,我將ByteArray傳遞給我的幫助程序類,它將POST數據請求格式化並將結果存儲在URLRequest.data中。

這裏是我的要求是什麼樣子:

--lljcuqjclcnyicgrmwexayhafmkhiwfx 

Content-Disposition: form-data; name="Filename" 



arrows.png 

--lljcuqjclcnyicgrmwexayhafmkhiwfx 

Content-Disposition: form-data; name="Filedata"; filename="arrows.png" 

Content-Type: image/png 



?PNG 

"image information as ByteArray" 



--lljcuqjclcnyicgrmwexayhafmkhiwfx 

Content-Disposition: form-data; name="Upload" 



Submit Query 

--lljcuqjclcnyicgrmwexayhafmkhiwfx-- 

所以我在尋找(使用JavaScript和HTML理想情況下)來處理請求,並將瀏覽器中顯示的文件(或顯示一個開放的方式/保存對話框,如果用戶沒有適當的插件顯示)。

+0

圖像預覽您可以在flex中使用文件reference.load()來完成,並從完整事件中獲取byteArray。對於PDF文件...這看起來可能會有所幫助[jspdf](http://snapshotmedia.co.uk/blog/jspdf) –

回答

0

首先簡單的情況下,要顯示的圖像或PDF(插件需要)

navigateToUrl(new URLRequest("http://localhost/images/hello.png")); 

如果你想要的東西,將數據傳遞給HTML頁面,你需要考慮下面的代碼

var req:URLRequest = new URLRequest("http://www.localhost/openfile.html"); 
req.data = "path='http://localhost/images/hello.png'"; 
req.method = URLRequestMethod.GET; 
navigateToURL(req); 

之後,你需要從javascript GET Parameter values through Javascript獲得路徑值,那麼你可以解析GET參數,然後你可以玩DOM元素。

我以爲我們無法從JavaScript獲取POST值,我們需要使用服務器腳本。 Post-variables-with-jquery

MS在瀏覽器中打開的詞將有助於View/Open Word Document。我不確定Word文檔。

+0

我無法使用navigateToUrl,因爲我要顯示的文件正在存儲在數據庫中,我無法通過URL訪問它們。我目前正在將該文件從數據庫中提取到一個自定義類中,該類將該文件存儲爲ByteArray。然後,我將ByteArray傳遞給格式化POST數據的輔助類,並將結果存儲到URLRequest.data中。 – Jason

+0

請參閱上面我對原始問題的編輯。並感謝您的答覆。 – Jason

相關問題