java spring mvc 上传

来源:互联网 发布:淘宝卖家打折 编辑:程序博客网 时间:2024/06/05 17:32

Spring mvc  实现上传功能


spring mvc Controller 中的代码

@RequestMapping("/userAddGo")public ModelAndView userAddGo(HttpServletRequest request,@ModelAttribute("user") User user) throws IllegalStateException,IOException {ModelAndView mav = new ModelAndView("redirect:/user/userList");userService.insertUser(user);System.out.println("文件上传。。");// 创建一个通用的多部分解析器.CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());// 设置编码multipartResolver.setDefaultEncoding("utf-8");// 判断 request 是否有文件上传,即多部分请求...if (multipartResolver.isMultipart(request)) {MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;Iterator<String> iter = multiRequest.getFileNames();while (iter.hasNext()) {MultipartFile file = multiRequest.getFile(iter.next());// 判断文件是否为空if (file.isEmpty()) {continue;}String path = request.getSession().getServletContext().getRealPath("/");SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");sdf.format(new Date());// 获取文件的名字String originalFilename = file.getOriginalFilename();String filepath = request.getSession().getServletContext().getRealPath("/")+ "upload/" + file.getOriginalFilename();this.createParentDirectory(filepath);File uploadFile = new File(filepath);file.transferTo(uploadFile);}}return mav;}

private void createParentDirectory(String path) {Assert.notNull(path);File file = new File(path);if (!file.getParentFile().exists()) {file.getParentFile().mkdirs();file.getParentFile().setWritable(true, false);file.getParentFile().setExecutable(true, false);}}


JSP中的代码
 <tr>    <td>      <input type="file" id="file" name="file">上传</ipput>    </td>  </tr>            <tr>      <td>         <input type="button" onclick="submit();" value="确认"/>      </td>      </tr>       </table></form><script type="text/javascript">   function submit(){   $('#ff').submit();   }</script>


form 标签里面必须有 

enctype="multipart/form-data" 

<form action="${pageContext.request.contextPath}/user/userAddGo" id="ff" enctype="multipart/form-data" method="post">


spring mvc 中配置参数
<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 --><bean id="multipartResolver"          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">          <!-- 默认编码 -->        <property name="defaultEncoding" value="utf-8" />          <!-- 文件大小最大值 -->        <property name="maxUploadSize" value="10485760000" />          <!-- 内存中的最大值 -->        <property name="maxInMemorySize" value="40960" />      </bean> 



0 0
原创粉丝点击