2012-02-03 78 views
3

我知道這個問題會被問了幾個時間,但還是我沒有得到任何解決這個問題..無法下載IE8中的XML文件 - 彈簧3應用

我想這兩個瀏覽器IE8,Mozilla的到強制下載XML文件作爲附件。但Mozilla在瀏覽器本身打開XML文件,IE8也嘗試在屏幕上呈現XML文件,但渲染不正確。

這是我在spring 3控制器中的代碼。

Pmd17Export export=exportService.getFlatFile(dbdto.getExportFileId()); 
IOUtils.copy(export.getFlatFile().getBinaryStream(), response.getOutputStream()); 
response.setContentType("application/octet-stream");  
response.setHeader("Content-Disposition", 
        "attachment;filename=" + export.getFlatFileName()); 
response.flushBuffer(); 

注:在瀏覽器中,我第一次做JS驗證,然後使用jQuery

function validate() { 
    //validate form 
    if(noerror) { 
     $("form").submit(); 
    } 
} 

附加請求和響應頭我可以在螢火看到

Response Headersview 
Date Fri, 03 Feb 2012 12:55:42 GMT 
Server Apache-Coyote/1.1 
Transfer-Encoding chunked 

Request Headersview 
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Accept-Encoding gzip, deflate 
Accept-Language en-us,en;q=0.5 
Connection keep-alive 
Cookie JSESSIONID=5ED81A79A2297AD044E6DBB2B90806E7 
Host localhost:8080 
Referer http://localhost:8080/dbcomparision/app/exportdatabase.html 
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1 
Request Headers From Upload Stream 
Content-Length 15 
Content-Type application/x-www-form-urlencoded 

請告訴提交表單我如何強制這兩個瀏覽器下載此文件。

+0

什麼服務器實例在運行彈簧控制器? – 2012-02-03 10:05:31

+0

@Sean Blaney ...它的Apache tomcat 6.0..any解決方案你知道.. – Rajesh 2012-02-03 10:25:06

+0

你是否啓用了mod_headers - 如果沒有設置來自tomcat的頭文件,很可能會以靜默方式失敗。 – 2012-02-03 10:34:20

回答

0

在發送數據之前,您是否需要設置標題? I.E.

response.setContentType("application/octet-stream");  
response.setHeader("Content-Disposition", 
        "attachment;filename=" + export.getFlatFileName()); 
IOUtils.copy(export.getFlatFile().getBinaryStream(), response.getOutputStream()); 
+0

你是awsome..simly驚人..感謝...這麼簡單和最好的解決方案.. – Rajesh 2012-02-04 07:42:49