我正在使用AngularJS和Spring編寫應用程序。我想向服務器發送請求並將從控制器返回的響應作爲文件下載。在控制器中,我有csv文件的內容(字符串),即1;2;3;4
(1行,4列)。將此響應作爲文件下載的最簡單方法是什麼?春季 - 作爲文件下載響應
下面,我貼我的簡化代碼。 在Spring控制器:
@RequestMapping(value = "/csv", method = GET)
@ResponseBody
public String getCsvFile() {
return getCsvContent();
}
在javascript中(AngularJS)
return $http({method: 'GET', url: 'csv/'});
我試圖寫也(下圖)的響應流,設置標題,但在客戶端,我總是得到這個內容作爲一個字符串 - 而不是一個文件下載。
@RequestMapping(value = "/csv", method = GET)
@ResponseBody
public void getCsvFile(HttpServletResponse response) {
response.setContentType("application/csv");
response.setHeader("Content-Disposition", "attachment; filename=file.csv");
response.setContentLength(getCsvContent().getBytes().length);
ServletOutputStream out = response.getOutputStream();
out.write(getCsvContent());
out.flush();
out.close();
}
有沒有人知道如何正確寫控制器的方法,以便下載響應作爲文件在客戶端?
你發送通過Ajax請求?如果是這樣,請通過常規請求來完成。 –