2 u014601881 u014601881 于 2014.04.08 11:47 提问

SpringMVC 后台怎么获取前台jsp页面中file中的文件。

把file中的Excel文件提交,后台该如何获取这个Excel文件。

2个回答

feelwing1314
feelwing1314   2014.04.29 14:57

SpringMVC默认是关闭fileupload功能的,开启该能够并验证文件上传,需要做如下几件事情:
第一:打开SpringMVC的文件上传功能:
***-servlet.xml中配置:

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

配置后,当SpringMVC接受到multipartRequest的时候,就会把HttpServletRequest转为MultipartHttpServletRequest类型,

第二步:创建上传文件的file.jsp:

<form action="dynamicFields.action?method=uploadFile" method="post" enctype="multipart/form-data"><input type="file" name="myfile" id="myfile" value="" /><br/><input type="submit" value="确认提交"></form>

一定不要漏掉enctype="multipart/form-data",否则web容器认为这不是一个MultipartRequest请求,会报错org.springframework.web.multipart.MultipartException: The current request is not a multipart request。

第三步:Controller层创建代码:

@RequestMapping(params = {"method=uploadFile"})
public ModelAndView uploadFile(@RequestParam("myfile") MultipartFile myfile,
                                  HttpServletRequest request, HttpServletResponse response) throws Exception {
    if(!myfile.isEmpty()){
        logger.info(myfile.getName());
        byte[] bs= myfile.getBytes() ;
        logger.info(new String(bs));
    }
    return null;
}

部署web应用运行后,能够看到控制台中打印出上传文件的内容,BINGO搞定(SpringMVC依赖common-fileupload.jar,需要加载该jar包)

qq_36187080
qq_36187080 这个logger是什么玩意
大约一年之前 回复
abguorui0928
abguorui0928   2014.04.15 18:46

跟Spring没多大关系,就是文件上传,前端用form提交,后台用fileupload组件吧,查一下fileupload组件

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!