博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot 文件上传/下载
阅读量:6842 次
发布时间:2019-06-26

本文共 1806 字,大约阅读时间需要 6 分钟。

有啥不懂的或者出错的可以在下面留言。

1. 文件上传

//上传路径    String folder = "C:\\code\\springboot-springsecurity\\security-demo\\src\\main\\java\\com\\laojiao\\xxx\\controller";    @PostMapping    public String upload(MultipartFile file) throws IOException {        System.out.println(file.getName());        System.out.println(file.getOriginalFilename());        System.out.println(file.getSize());        //创建本地文件        File localFile = new File(folder,System.currentTimeMillis()+".txt");        //把传上来的文件写到本地文件        file.transferTo(localFile);        //返回localFile文件路径        return localFile.getAbsolutePath();    }

返回是String就是文件所在路径,一般把它放到数据库中。

我在这里用的是单机上传,如果有需要上传到ftp或者fastdfs等文件服务器,请看下面核心代码。

//利用 MultipartFile 的 transferTo 方法 上传文件 至 path            file.transferTo(targetFile);            //上传到 FTP 服务器            FTPUtil.uploadFile(Lists.newArrayList(targetFile));            //删除 path 路径下的 文件            targetFile.delete();

最后返回一个文件名。需要下载或者获取文件的时候,给该文件名加上前缀即可。

2. 文件下载

@GetMapping("/{id}")    public void download(@PathVariable String id, HttpServletRequest request, HttpServletResponse response){        try(InputStream inputStream = new FileInputStream(new File(folder,id+".txt"));            OutputStream outputStream = response.getOutputStream();) {            //设置内容类型为下载类型            response.setContentType("application/x-download");            //设置请求头 和 文件下载名称            response.addHeader("Content-Disposition","attachment;filename=test.txt");            //用 common-io 工具 将输入流拷贝到输出流            IOUtils.copy(inputStream,outputStream);            outputStream.flush();        } catch (FileNotFoundException e) {            e.printStackTrace();        }catch (IOException e) {            e.printStackTrace();        }    }

注意IOUtils 是apache的一个工具包,是需要导入common-io依赖包的。或者你手动获取输入输出流转换也可以。

介绍下我的所有文集:

流行框架

底层实现原理:

转载地址:http://bedul.baihongyu.com/

你可能感兴趣的文章
ping返回结果
查看>>
git学习
查看>>
passive-interface
查看>>
第一章 Excel2010有哪些新功能
查看>>
Android ADT 14 插件更新说明
查看>>
海量运维常用技术之--HAProxy网站负载均衡应用
查看>>
shape图形的使用
查看>>
如何快速通过对方微信好友验证!
查看>>
asp.net 中点击按钮弹出模式对话框,选择值后返回到页面中(window.showModalDialog实现)...
查看>>
小小总结2
查看>>
windows 2003 活动目录的更改域名后缀技巧
查看>>
数据库安全:入侵Oracle数据库常用操作命令
查看>>
Oracle热备份的原理
查看>>
SQL Server会写入哪些注册表?
查看>>
远程桌面连接工具VNC——license Key
查看>>
用sorttable给页面表格做排序
查看>>
DHCP Server跨路由分配IP地址(DHCP中继
查看>>
用VB实现“木马”式隐形运行程序
查看>>
Microsoft System Center 2012(七)-SCOM 2012监控redhat linux 6.0
查看>>
适合IT人士的一种做饭方法--炕饼
查看>>