如何在下载文件时在spring中设置res.setContentType(“application / xls”)动态

时间:2013-01-09 09:42:53

标签: java jsp spring-mvc download

我想下载服务器本身可用的文件

AppName\resources\attachemnts\file.extension(this can be anything)我从网上获得了以下相同的代码。

@RequestMapping(value = "/fileDownload", method = RequestMethod.GET)
        public void handleFileDownload(@RequestParam("fileLocation") String fileLocation,HttpServletResponse res) {
            try {

                URL url = getClass().getResource(fileLocation);
                File f = new File(url.toURI());
                System.out.println("Loading file "+fileLocation+"("+f.getAbsolutePath()+")");
                if (f.exists()) {
                    res.setContentType("application/xls");
                    res.setContentLength(new Long(f.length()).intValue());
                    res.setHeader("Content-Disposition", "attachment; filename=Test.xls");
                    FileCopyUtils.copy(new FileInputStream(f), res.getOutputStream());
                } else {
                    System.out.println("File"+fileLocation+"("+f.getAbsolutePath()+") does not exist");
                }
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }

我必须设置res.setContentType("application/xls");动态,因为文件类型每次都会不同。

如何获取文件类型?

1 个答案:

答案 0 :(得分:1)

为了确定文件类型,您可以使用任何检查file's magick numbers并返回其文件类型的库。例如:

另见相关问题: