本篇介绍Java web开发的两个基本操作:接收前端上传的文件、从其他服务下载文件。
后台下载文件很简单,所以首先看一下下载文件。
下载文件
从一个给定的下载地址下载文件很简单:
- 首先用InputStream去读下载地址;
- 在本地创建临时文件;
- 把下载地址的文件内容copy到临时文件。
private
使用完之后记得删除临时文件:
tempFile
接收上传的文件
添加controller
通过Spring initialzr创建一个Maven工程,具体配置如下:
![cae5d42022ffb63c75f98ae363980019.png](https://i-blog.csdnimg.cn/blog_migrate/ec9d8802c3cb665ea4237ea59338337d.jpeg)
右键点击“com.example.upload“ -> New -> Java Class,添加文件FileController。
在FileController类定义前添加注解,使之成为一个真的Controller。
@RestController
添加文件上传的api
@PostMapping
添加处理文件的Service类
右键点击“com.example.upload“ -> New -> Java Class,添加文件FileService。
在FileService类定义前添加注解。
@Log4j2
注:@Log4j2是为了打印log用的,具体用法在前文中有介绍zhujianwei:Java Web开发入门(8)—— lombok + Log4j2zhuanlan.zhihu.com
![ede874c5e0cee0a2f3dffffe6e5e7004.png](https://i-blog.csdnimg.cn/blog_migrate/4c33c4c8f2959925c88f675682f84414.jpeg)
添加函数处理上传的文件:
public
在controller中调用Service处理文件
在Controller中声明FileService对象,并添加自动关联注解;然后就可以使用FileService对象处理文件了。
完整的FileController类代码如下:
@RestController
运行Web Application并测试upload api
打开Terminal窗口,进入工程目录、运行下面的命令:
mvn spring-boot:run
测试api有很多种方法,常用的有下面两种:
1)postman
打开postman发送api请求,配置如下:
![fa6f66823ad2c8cf877454ab2aa2e2ab.png](https://i-blog.csdnimg.cn/blog_migrate/6004f9142b33b56fa0ef8943e0175b1f.jpeg)
检查调用的结果,如果看到返回hello.txt文件的内容,就说明文件上传成功了
![74e858c7c75eb60bc1d911d088f0c702.png](https://i-blog.csdnimg.cn/blog_migrate/499c5b38f4678d0d9a059058597d72ef.png)
2)curl
打开一个Terminal窗口,运行以下命令:
'Content-Type: multipart/form-data' -F
检查调用的结果,如果看到hello.txt文件中的内容,就说明文件上传成功了。
![f36ffab5fd1253277211bada4a8286b9.png](https://i-blog.csdnimg.cn/blog_migrate/2083cba026825193c4ef70b5b51f871e.png)