SpringMVC框架的文件上传的使用

文件的上传(重点)  *****
  1、页面上三要素
     表单请求方式一定是post
     表单的enctype的值一定修改成:multipart/form-data

     input的类型一定是file


 2、必需的jar包
    commons-io.jar
    commons-fileupload.jar
 3、sprinmvc的接收文件的设置
    在springmvc容器中配置一个文件解析器
      <bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为5MB -->
<property name="maxUploadSize">
<value>5242880</value>
</property>

</bean>


    在方法接收文件使用 MultiPartFile类型 ,参数名和input的name保持一致
 4、保存图片时,要修改名称

 5、配置虚拟路径





阅读更多

springMVC框架文件上传时遇到问题

07-03

我是基于red5服务器。来用springMVC框架做文件上传。在上传文件时遇到错误。rnrn @RequestMapping(value = "/upload.do",method = RequestMethod.POST)rn public String upload(HttpServletRequest request,rn HttpServletResponse response, String string) rn System.out.println("==================run in import");rn System.out.println("--------------" + request.getParameter("upload"));rn rn // 创建一个通用的多部分解析器.rn CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(rn request.getSession().getServletContext());rn // 设置编码rn commonsMultipartResolver.setDefaultEncoding("utf-8");rn System.out.println("++++++commonsMultipartResolver.isMultipart(request) : " + commonsMultipartResolver.isMultipart(request));rn // 判断是否有文件上传rn if (commonsMultipartResolver.isMultipart(request)) rn MultipartHttpServletRequest multipartRequest = commonsMultipartResolverrn .resolveMultipart(request);rnrn Iterator iter = multipartRequest.getFileNames();rn System.out.println("+++++++++++iter = "+iter.toString());rn // iter里面没有值rn while (iter.hasNext()) rn MultipartFile file = multipartRequest.getFile((String) iter.next());rn if (file != null) rn File localFile = new File("/WEB-INF/upload"rn + file.getOriginalFilename());rn try rn // file.transferTo(localFile);rn System.out.println("=======1111111111111====");rn file.transferTo(localFile);rn System.out.println("====222222222222222=======");rn catch (IllegalStateException e) rn // TODO Auto-generated catch blockrn e.printStackTrace();rn catch (IOException e) rn // TODO Auto-generated catch blockrn e.printStackTrace();rn rn rn rn rn // 批量上传rn // Map fileMap = request.getFileMap();rn // for(Entry entry : fileMap.entrySet())rn // MultipartFile file = entry.getValue();rn // try rn // file.transferTo(new File("/WEB-INF/upload" +rn // file.getOriginalFilename()));rn // catch(IllegalStateException e)rn // e.printStackTrace();rn // catch (Exception e) rn // // TODO: handle exceptionrn // e.printStackTrace();rn // rn // rn return "up";rn rnrnrn上传文件后,在我指定的地方没有找到文件。测试发现rnif (commonsMultipartResolver.isMultipart(request)) 这个地方获得的是false,我这个action没有接收到上传的文件,但是通过System.out.println("--------------" + request.getParameter("upload"));获取到了我上传文件的文件名。rn通过上网查找,我在配置文件中配置了MultipartResolver处理器rn rn rn rn rn rn rn rn rn rn rn rn rn error_fileupload rn rn rn rnrn如果我在代码最上面写rnMultipartHttpServletRequest rrr = (MultipartHttpServletRequest) request;rn他就会报转化错误rnjava.lang.ClassCastException: org.apache.catalina.connector.RequestFacade cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequestrnrn不知道现在是什么问题,求解啊!

没有更多推荐了,返回首页