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

  • 相关阅读:
    Android-内存泄漏
    性能adb命令
    设置Nginx开机自启动
    【转 记录】python中的encode以及decode
    SVN 提交回滚
    Linux基础
    CentOS6.X关闭防火墙
    SCP用法
    Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置(转)
    (转,记录用)jQuery页面加载初始化的3种方法
  • 原文地址:https://www.cnblogs.com/zilongmao/p/10264977.html
Copyright © 2011-2022 走看看