SpringBoot的文件上传&下载

前言:不多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代码:

/**
 * &#x4E0A;&#x4F20;&#x4F7F;&#x7528;PostMapping&#x4E86;, url&#x5E26;&#x4E86;&#x4E00;&#x4E2A;id&#x548C;&#x5B50;&#x8D44;&#x6E90;photos
    consumes: &#x6D88;&#x8017;&#x3001;&#x6D88;&#x8D39;
    &#x8868;&#x793A;&#x6307;&#x5B9A;Request&#x9644;&#x5E26;&#x7684;&#x6570;&#x636E;&#x4E3A;MULTIPART_FORM_DATA&#x5F62;&#x5F0F;(&#x6587;&#x4EF6;&#x4E0A;&#x4F20;&#x5C31;&#x662F;&#x8FD9;&#x6837;&#x7684;)
 * @param id &#x8868;&#x793A;&#x6211;&#x8981;&#x7ED9;&#x67D0;&#x4E2A;id&#x7684;&#x67D0;&#x79CD;&#x8D44;&#x6E90;&#x4E0A;&#x4F20;&#x56FE;&#x7247;
 * @param imgFile &#x56FE;&#x7247;&#x672C;&#x8EAB;
 * @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("&#x63A5;&#x6536;&#x5230;&#x6587;&#x4EF6; " + id + "&#x6536;&#x5230;&#x6587;&#x4EF6;: " + imgFile.getOriginalFilename());
    // &#x4FDD;&#x5B58;&#x6587;&#x4EF6;
    FileOutputStream fos = new FileOutputStream("target/" + imgFile.getOriginalFilename());
    IOUtils.copy(imgFile.getInputStream(), fos);
    fos.close();
}

测试:

SpringBoot的文件上传&下载

Send后PostMan没有回执,但控制台给了打印信息

SpringBoot的文件上传&下载

打开对应上传目录后, 发现文件已经上传成功

SpringBoot的文件上传&下载

文件下载

java代码:

/**
 * &#x4E0B;&#x8F7D;&#x4F7F;&#x7528;GetMapping
 * produces: &#x6307;&#x5B9A;&#x8F93;&#x51FA;&#x683C;&#x5F0F;&#x4E3A;GIF&#x56FE;&#x7247;(&#x4F60;&#x4EEC;&#x4E5F;&#x53EF;&#x4EE5;&#x81EA;&#x5DF1;&#x6539;&#x5566;)
 * @param id &#x8868;&#x793A;&#x6211;&#x8981;&#x53D6;&#x67D0;id&#x4E0B;&#x7684;&#x67D0;&#x4E2A;&#x8D44;&#x6E90;
 * @return
 * @throws Exception
 */
@GetMapping(value = "/{id}/icon", produces=MediaType.IMAGE_GIF_VALUE)
public byte[] getIcon(@PathVariable int id) throws Exception{
    log.info("getIcon( " + id + " )");
    // &#x53D6;&#x6B64;&#x8DEF;&#x5F84;&#x4E0B;&#x7684;icon.gif&#x6587;&#x4EF6;
    String iconFile = "src/test/resources/icon.gif";
    InputStream is = new FileInputStream(iconFile);
    return IOUtils.toByteArray(is);
}

就直接用PostMan测试了(用浏览器结果也一样,我试过啦,就不截图了)

SpringBoot的文件上传&下载

Original: https://www.cnblogs.com/zilongmao/p/10264977.html
Author: 无尽函数
Title: SpringBoot的文件上传&下载

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/610080/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球