在上传图片之前,
切记:不要把图片上传到工程 目录 ,不方便进行工程维护。
一般上传到专门的图片服务器。
接下来,说说 spring mvc对文件上传的支持
springmvc使用commons-fileupload进行图片上传。
commons-fileupload对应的springmvc的图片上传解析器:
org.springframework.web.multipart.commons.CommonsMultipartResolver
1在springmvc.mvc中配置
<!-- 文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置上传文件的最大尺寸为5MB 不是单个文件 某次文件上传所有文件大小之和 --> <property name="maxUploadSize"> <value>5242880</value> </property>
</bean>
2加入commons-fileupload的jar包
3编写表单,注意要在form标签中加上enctype="multipart/form-data"表示该表单是要处理文件的,
<form action="fileUpload.html" method="post" enctype="multipart/form-data"> 选择文件:<input type="file" name="pictureFile"> <input type="submit" value="提交"> </form>
4编写 controllor (通过@RequestParam将参数绑定到形参上)
@RequestMapping("fileUpload") public String fileUpload(@RequestParam("pictureFile") MultipartFile pictureFile) { // 判断文件是否为空 if (!file.isEmpty()) { try { // 文件保存路径 String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/" + file.getOriginalFilename(); // 转存文件 pictureFile.transferTo(new File(filePath)); } catch (Exception e) { e.printStackTrace(); } } // 重定向 查询所有界面 return "redirect:/queryAll.action"; }
加入有多文件要上传怎么办?
定义一个文件数组来接收。
public String filesUpload(@RequestParam("files") MultipartFile[] files) {