前言:不多BB直接上代码
文件上传
pom依赖添加commons-io
<!-- 上传/下载jar https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupid>commons-io</groupid>
<artifactid>commons-io</artifactid>
<version>2.4</version>
</dependency>
java代码:
/**
* 上传使用PostMapping了, url带了一个id和子资源photos
consumes: 消耗、消费
表示指定Request附带的数据为MULTIPART_FORM_DATA形式(文件上传就是这样的)
* @param id 表示我要给某个id的某种资源上传图片
* @param imgFile 图片本身
* @throws Exception
*/
@PostMapping(value = "/{id}/photos", consumes=MediaType.MULTIPART_FORM_DATA_VALUE)
public void addPhoto(@PathVariable int id, @RequestParam("photo")MultipartFile imgFile) throws Exception{
log.info("接收到文件 " + id + "收到文件: " + imgFile.getOriginalFilename());
// 保存文件
FileOutputStream fos = new FileOutputStream("target/" + imgFile.getOriginalFilename());
IOUtils.copy(imgFile.getInputStream(), fos);
fos.close();
}
测试:
Send后PostMan没有回执,但控制台给了打印信息
打开对应上传目录后, 发现文件已经上传成功
文件下载
java代码:
/**
* 下载使用GetMapping
* produces: 指定输出格式为GIF图片(你们也可以自己改啦)
* @param id 表示我要取某id下的某个资源
* @return
* @throws Exception
*/
@GetMapping(value = "/{id}/icon", produces=MediaType.IMAGE_GIF_VALUE)
public byte[] getIcon(@PathVariable int id) throws Exception{
log.info("getIcon( " + id + " )");
// 取此路径下的icon.gif文件
String iconFile = "src/test/resources/icon.gif";
InputStream is = new FileInputStream(iconFile);
return IOUtils.toByteArray(is);
}
就直接用PostMan测试了(用浏览器结果也一样,我试过啦,就不截图了)
Original: https://www.cnblogs.com/zilongmao/p/10264977.html
Author: 无尽函数
Title: SpringBoot的文件上传&下载
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/610080/
转载文章受原作者版权保护。转载请注明原作者出处!