我正在從控制器下載文件。這是行不通的。這是因爲文件名中的「,」。如果我從名稱中刪除「,」將起作用。有沒有解決這個問題。我應該做String.replace(「,」「」)。一定會有更好的辦法?下載文件時的文件名「」,「
response.setHeader("Content-Disposition", "inline; filename=" + "abbbbababbaababba.4.1.2013,aakdfhfdf.xlsx");
Complete方法
@RequestMapping(value = "/newsimage/{newsImageId} ", method = RequestMethod.GET)
public void getImage(HttpServletRequest request, HttpServletResponse response, @PathVariable long newsImageId) {
NewsImage newsImage = newsImageService.findById(newsImageId);
String fileName = newsImage.getFileName();
response.setHeader("Content-Disposition", "inline; filename=" + "abbbbababbaababba.4.1.2013,aakdfhfdf.xlsx");
response.setContentType(newsImage.getContentType());
// response.setHeader("Content-Disposition", "attachment;filename=" + newsImage.getFileName());
OutputStream out;
try {
out = response.getOutputStream();
out.write(newsImage.getData());
out.flush();
} catch (IOException e) {
logger.error(e.getMessage());
}
}
另請參閱:http://stackoverflow.com/questions/93551/how-to-encode-the-filename-parameter-of-content-disposition-header-in-http –