admin管理员组文章数量:1533854
前言:先说下需求,项目需求是用户一点击一个前端页面的链接就可以下载一个压缩包.因为就1个文件,使用文件管理系统像fastDSF,阿里云的OSS这种没必要,直接放在nginx服务器上的怕不好管理,于是给我限定了把文件打包到部署时候的jar包中并实现浏览器下载.
废话不多说,直接上代码!
1.首先是建立一个文件夹存放需要打包的文件,这里我选择的是和src同路径创建一个files,把文件放入文件夹内.
2.修改pom.xml配置,实现打包时将文件打包到\target\classes\这个目录下,
<!--pom.xml里直接添加这段就可以把文件打包到\target\classes\目录了,代码能看懂把,要学会灵活运用,里面几个参数根据需要自己改-->
<resources>
<resource>
<directory>files</directory>
<includes>
<include>/*.zip</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
打包后效果
3.接下来就是功能实现,很简单,在controller里面实现即可
@GetMapping("download-template")
public Result downloadTemplate(HttpServletResponse response) throws IOException {
ApplicationHome ah = new ApplicationHome(getClass());
File files = ah.getSource();//这里获取到的是\target\classes\路径创建的File
File file=new File(files,"导入模板.zip");//这里就是文件的绝对路径创建的File
System.out.println(file.getParentFile().toString());
response.setContentType("application/msword");//msword可以随便设置,别和当前项目别的下载冲突接口
response.setCharacterEncoding("UTF-8");
String encode = URLEncoder.encode("导入模板", "UTF-8");//这是文件名,这样处理是解决乱码
response.addHeader("Content-Disposition", "attachment;filename=\"" + encode +".zip" +"\"");
response.flushBuffer();
OutputStream outputStream = response.getOutputStream();
//输出文件
InputStream inputStream = new FileInputStream(file);
IOUtils.copy(inputStream, outputStream);
//关闭流
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly(outputStream);
return Result.success("下载成功");
}
最后:如果对你有帮助,可以随手点个赞哈,让我看到,我就有动力写的详细点,要不我就直接复制代码做个记录留我自己看就行了哈.
传送门,这里有关于创建临时文件,代码写入修改临时文件内容,最终把临时文件浏览器下载的写法,感兴趣的可以点击这里链接: Aspose.Words for Java实现Word的操作(创建,合并单元格,样式修改,动态插入数据)并浏览器下载或本地导出.
版权声明:本文标题:Java实现文件浏览器下载 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1725950100a1050362.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论