springmvc文件上传下载

本文详细介绍了如何使用SpringMVC实现文件的上传和下载功能。包括客户端POST提交、enctype属性设置、commons-fileupload及commons-io依赖,以及springmvc配置文件中multipartResolver的配置。同时提供了MultipartFile工具类的使用示例,以及批量下载和文件下载的实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意事项:

  1. 客户端提交方式必须为POST提交
  2. 提交表单需要添加    enctype=”multipart/form-data” 属性
  3. 上传需要jar包    commons-fileupload.jar   commons-io.jar

文件上传:

1.需要在springmvc配置文件中添加:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  <property name="defaultEncoding" value="UTF-8"></property>
  <property name="maxUploadSize" value="数字"></property> </bean>

2.MultipartFile 工具类

 

  @RequestMapping(value="fileupload",method=RequestMethod.POST)
    public String fileupload(String title,@RequestParam("upfiles") MultipartFile[] upfiles) {
        // 文件上传的代码
        System.out.println(title);
        //空文件不去上传操作
        for(MultipartFile upfile:upfiles) {
            if(upfile.getSize()>0) {
          //文件上传服务器保存路径 String path
="D:\\upload\\"; //上传文件的文件名 String filename = upfile.getOriginalFilename(); System.out.println(filename); File file = new File(path+filename); try { //上传文件开始 upfile.transferTo( file); } catch (Exception e) { e.printStackTrace(); } } } return "show"; }

 

如果是批量下载需要在MultipartFile属性前添加注释@RequestParam("前台提交文件name值")

文件下载:

  @RequestMapping("download")
    public ResponseEntity<byte[]> download(String file){//创建下载路径
        String filename = file;
        String path = "D:\\upload\\";
        File file = new File(path + filename);

        HttpHeaders httpHeaders = new HttpHeaders();
        //获取文件后缀
        int i1 = filename.lastIndexOf(".");
        String substring = filename.substring(i1);

        //设置下载时文件名
        filename=filename+substring;
     //将文件名进行url转码 try { filename = URLEncoder.encode(filename,"utf-8"); } catch (UnsupportedEncodingException e) { System.out.println("上传异常"); e.printStackTrace(); } httpHeaders.setContentDispositionFormData("attachment", filename); //设置二进制流方式下载 httpHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM); try { return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), httpHeaders, HttpStatus.OK); } catch (Exception e) { session.setAttribute("load","fail"); e.printStackTrace(); } return null; }

 

转载于:https://www.cnblogs.com/hwxxbc/p/10601661.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值