我需要从Spring MVC应用程序下载csv文件。我有我需要包含在文件中的数据。我需要在浏览器会话中动态创建文件并将其下载到用户系统。我尝试过这里提到的解决方案:Downloading a file from spring controllers
我无法生成csv,它正在服务器上查找文件。
到目前为止我做了什么:
客户端电话:
$.ajax({
type: "GET",
url:"${ctx}/emp/getAttendance?empId=" + emp +"&fileName=" + file,
success: function (data) {
$('#result_loading').hide();
}
});
服务器端:
String path = req.getServletContext().getRealPath("");
File file = new File(path + "/" + fileName);
file.createNewFile();
FileInputStream inputStream = new FileInputStream(file);
resp.setContentType("application/pdf");
resp.setHeader("content-disposition;","attachment;filename=\"download.pdf\"");
OutputStream outputStream = resp.getOutputStream();
IOUtils.copy(inputStream, outputStream);
outputStream.close();
我需要Ajax调用来下载文件。我甚至看不到下载的空文件。
有人可以帮助我解决我做错的问题。
答案 0 :(得分:1)
您可以使用spring框架中的FileSystemResource
类
该类存在于位置
org.springframework.core.io.FileSystemResource
使用java.io.File
类创建csv文件,然后将文件对象的值传递给构造函数
FileSystemResource(File file)
并将其返回浏览器,一旦加载了网址,浏览器将自动打开下载窗口。
初始化文件系统资源后删除文件,就像从未创建过文件一样好。