Java 从服务器返回CSV文件作为响应
我试图从服务器返回一个文件作为响应,以便从客户端下载 我不知道我做错了什么,我按照一些例子,但我仍然无法下载该文件,请假设该文件已存储在目录中 这是我的密码:Java 从服务器返回CSV文件作为响应,java,jquery,ajax,spring-mvc,Java,Jquery,Ajax,Spring Mvc,我试图从服务器返回一个文件作为响应,以便从客户端下载 我不知道我做错了什么,我按照一些例子,但我仍然无法下载该文件,请假设该文件已存储在目录中 这是我的密码: @RequestMapping(value="/reports/downloadCsv", method=RequestMethod.POST) public void saveToCsv( @Validated HttpServletRequest request, @V
@RequestMapping(value="/reports/downloadCsv", method=RequestMethod.POST)
public void saveToCsv(
@Validated HttpServletRequest request,
@Validated HttpSession session,
@Validated HttpServletResponse response,
@RequestParam String report) {
InputStream in = new FileInputStream("C:\\server\\reports\\AccessReport.csv");
response.setContentType("text/csv;charset=utf-8");
response.setHeader("Content-disposition", "attachment; filename=AccessReport.csv");
FileCopyUtils.copy(in, response.getOutputStream());
response.flushBuffer();
}
这是我的ajax调用:
$.ajax({
url: "/server/reports/downloadCsv",
type: "post",
data: {
report: "AccessReport.csv"
},
type: 'POST',
success: function(res){
}
});
你有错误日志和/或stacktrace吗?我的代码中没有异常,js中也没有。问题是文件没有从浏览器下载。我不确定我做错了什么,或者我遗漏了什么,但文件以绝对路径存在。这可能会对你有所帮助。为什么要用ajax处理响应?当您直接在浏览器中访问URL时,它是否起作用?为什么不使用
窗口。打开?使用POST而不是GET也是违反直觉的。获取资源时应该使用GET请求。