zoukankan      html  css  js  c++  java
  • 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代码:

    /**
     * 上传使用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测试了(用浏览器结果也一样,我试过啦,就不截图了)

  • 相关阅读:
    自己动手实现一个WEB服务器
    Java SPI机制和使用示例
    Redis笔记(七):Redis应用场景
    Linux笔记:linux常用命令
    Linux笔记:vi常用命令
    PostgreSQL执行超时的问题
    Redis笔记(五):Redis发布订阅
    Redis笔记(四):Redis事务支持
    Redis笔记(三):Redis常用命令
    Redis笔记(二):Redis数据类型
  • 原文地址:https://www.cnblogs.com/zilongmao/p/10264977.html
Copyright © 2011-2022 走看看