我正在构建一个Web应用程序,某种类型的dropbox,用户可以使用Spring MVC和Hibernate上传任何类型的文件。我有一个类型为“file”的输入用于上传,我在控制器中有一个方法,它通过将多部分文件作为参数来处理上传请求,并将该文件存储在特定用户的数据库中。问题是我不知道如何将文件交还给客户端。从数据库中检索文件后,如何返回它以及我应该在前端有什么内容才能使窗口显示并请求下载路径?或者告诉我在哪里可以读到这个。
谢谢
答案 0 :(得分:0)
你可以创建这样的东西:
@RequestMapping(value = "/yourURL/download", method = RequestMethod.GET)
public void download(HttpServletResponse response) {
...Find your file to download
File file = //retrieve your file
String mimeType = URLConnection.guessContentTypeFromName(file.getName());
if (mimeType == null) {
logger.debug("mimetype is not detectable, will take default");
mimeType = "application/octet-stream";
}
try {
response.setContentType(mimeType);
response.setHeader("Content-Disposition", String.format("attachment; filename=\"%s\"", file.getName()));
response.setContentLength((int) file.length());
InputStream inputStream = new BufferedInputStream(new FileInputStream(file));
FileCopyUtils.copy(inputStream, response.getOutputStream());
} catch (Exception ex) {
logger.error("An exception has occurred trying to download the file", ex);
}
}