我試圖在Web應用程序上添加一個按鈕,當點擊該按鈕時,下載一個CSV文件(很小,只有4KB大小)。使用Java在瀏覽器中下載CSV文件
我已經有了製作的按鈕和一個監聽器。該文件也準備好了。 我現在需要做的唯一事情就是創建下載csv文件時點擊按鈕的實際事件。
假設「文件」(這是類型文件的)是我使用的CSV文件的名稱和它的蓄勢待發,這是方法我到目前爲止:
public void downloadCSV(HttpServletRequest _request, HttpServletResponse _response, LogFileDetailCommand cmd) throws Exception {
ServletOutputStream outStream = _response.getOutputStream();
_response.setContentType("text/csv");
_response.setHeader("Content-Disposition", "attachment; filename=data.csv");
}
我意識到我錯過了將文件寫入ServletOutputStream的部分,但這是我堅持的部分。我知道類ServletOutputStream擴展了類OutputStream(http://docs.oracle.com/javaee/5/api/javax/servlet/ServletOutputStream.html),因此它繼承了它的「寫」方法,所以在理想的世界中,我只想簡單地說「outStream.write(file);」,但我不能這樣做是因爲這些「寫入」方法只有字節,byte []和int作爲參數,並且無法將文件傳遞給它們。
我應該怎麼做將文件傳入outStream?
(除了注意:我要補充這「_response.setContentLength();」,如果是這樣,什麼參數,我應該把它付諸表決)
附:我知道在完成outStream之後我需要刷新和/或關閉它。
現在它的作品感謝你!非常感謝:D – studentcoder