SpringMVC中下载与上传

在SpringMVC中,想要实现上传和下载比较简单

上传

上传下载第一步,前加入jar包

commons-fileupload-1.2.1.jar

commons-io-2.0.jar

加入jar包之后,可以在Spring的配置文件中配置上传文件的一些限制

<bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"></property> // 编码
        <property name="maxUploadSize" value="#{1024*1024*20}"></property> // 上传文件最大为多少
    </bean>

上传页面

<body>
    <form method="post" action="/UpLoad" enctype="multipart/form-data">
        userName:<input type="text" name="userName"><br>
        file:<input type="file" name="file"  ><br>
        <input type="submit" value="提交">
    </form>
</body>

Controller层

 @RequestMapping("/UpLoad")
    public String upload(@RequestParam(value = "userName", required = false) String userName,
                         @RequestParam("file")MultipartFile file, Model model) throws IOException {
        System.out.println(file.getOriginalFilename()); // 文件名
        System.out.println(file.getName()); // file表单对应的name属性值
        System.out.println(file.getSize()); // 文件大小
        file.transferTo(new File("I:\\upload\\" + file.getOriginalFilename()));
        return "success";
    }

实验演示

浏览器页面
在这里插入图片描述
控制台输出
在这里插入图片描述
至此,上传就完成了。

下载

controller层

    @RequestMapping("/download")
    public ResponseEntity<byte[]> download(HttpSession session) throws IOException {
        ServletContext servletContext = session.getServletContext();

        FileInputStream fileInputStream = new FileInputStream(new File("I:\\copy.txt"));
        byte[] bytes = new byte[fileInputStream.available()];
        fileInputStream.read(bytes);
        MultiValueMap<String, String> headers = new HttpHeaders();
        headers.add("Content-Disposition", "attachment;filename=copy.txt");
        HttpStatus status = HttpStatus.OK;
        return new ResponseEntity<byte[]>(bytes, headers, status);
    }

jsp页面层

<body>
<a href="/download">下载</a>
</body>

演示效果
在这里插入图片描述到这就完成了下载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值