Spring MVC 支持的文件上传

文件上传是项目开发中最常用的功能。
为了能上传文件,必须将表单的method设置为POST,并且将enctype设置为multipart/form-data。
只有在这种情况下,浏览器才会把用户选择的文件二进制数据发送给服务器(二进制流的方式)。
Spring MVC为文件上传提供了直接的支持,这种支持是用即插即用的MultipartResolver实现的。
Spring MVC使用Apache Commons FileUpload技术实现了一个MultipartResolver实现类:CommonsMultipartResolver。因此SpringMVC的文件上传还需要依赖Apache Commons FileUpload的组件
  • 导包:
    com.springsource.org.apache.commons.fileupload-1.2.0.jar
    com.springsource.org.apache.commons.io-1.4.0.jar

  • 在applicationContext中配置解析器

    <bean id="commonsmultipartresolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    </bean>
  • 后台接收文件(没有接收成功,原因未知)
package com.bamzhy.Controller;

import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;

@Controller
public class CoreController {
    @RequestMapping("/fileupload")
    public String test(HttpServletRequest request, MultipartFile pic) throws SQLException {

        //输入项的名字(jsp传过来的名字)
        String name = pic.getName();
        System.out.println("name= "+name);
        //文件名(真实文件名)
        String originalFilename = pic.getOriginalFilename();
        System.out.println("originalFilename= "+originalFilename);
        //保存的目标路径
        String realPath = request.getServletContext().getRealPath("/WEB-INF/pic/");

        System.out.println("realPath"+realPath);

        File file= new File(realPath+originalFilename);

        //保存的目标文件
        System.out.println("file"+file.getAbsolutePath());

        try {
            //正式开始传输
            pic.transferTo(file);
            request.setAttribute("result","success");
        } catch (IOException e) {
            e.printStackTrace();
            request.setAttribute("result","fail");
        }

        return "/WEB-INF/result.jsp";
    }
}
  • 限制上传文件的大小(非做不可否则会报错)
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="1024000" >
        </property>
    </bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值