spring mvc实现文件上传下载

Springmvc实现文件上传和下载

导入依赖包

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.1</version>
</dependency>
文件上传

1、注册bean

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="10486076"/>
    <property name="maxInMemorySize" value="40960"/>
</bean>

2.编写前端index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <form action="/upload" enctype="multipart/form-data" method="post"><br>
    <input type="file" name="file"/><br>
    <input type="submit" value="上传">
  </form>
  </body>
</html>

3.编写controller

@Controller
public class FileController {
    @RequestMapping("/upload")
    public String fileUpload(@RequestParam("file") CommonsMultipartFile file , HttpServletRequest request, Model model) {
        String path = request.getSession().getServletContext().getRealPath("upload");
        String filename = file.getOriginalFilename();
        File targetFile = new File(path, filename);
        if(!targetFile.exists()){
            targetFile.mkdirs();
        }
        try {
            file.transferTo(targetFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
        model.addAttribute("fileUrl",request.getContextPath()+"/upload/"+filename);
        return "success";
    }
}

启动tomcat ,完成上传文件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

文件下载

1.编写Controller

@RequestMapping("/download")
public ResponseEntity<byte[]> fileDownload(HttpServletRequest request,  String filename) throws IOException {
    String path = request.getSession().getServletContext().getRealPath("/upload/");
    //创建该文件对象
    File file = new File(path + File.separator + filename);
    HttpHeaders headers = new HttpHeaders();
    //通知浏览器以下载的方式打开文件
    headers.setContentDispositionFormData("attachment",filename);
    //定义以流的形式下载返回的文件数据
    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
    //使用String mvc框架的ResponseEntity对象封装返回下的数据
    return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED);
}

2.前端

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<a href="${pageContext.request.contextPath}/download?filename=1.jpg">
    文件下载
</a>
</body>
</html>

3.启动tomcat

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值