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

  • 相关阅读:
    此时的我,就像一个炸药包...
    我焦躁,并不只是心里承受,还是因为我上面担着。
    我们应该顶住压力
    git初识后的一些问题
    我近期应该找个机会休整一下了
    权限管理设计的一些感悟
    一个无用的功能
    关于IE8与FireFox中,button内字体总是有一个不垂直居中的问题
    Android之EditText文本框监听事件
    Android流量统计TrafficStats类的使用
  • 原文地址:https://www.cnblogs.com/zilongmao/p/10264977.html
Copyright © 2020-2023  润新知