1. 程式人生 > >java web之路 springMVC上傳圖片

java web之路 springMVC上傳圖片

jar包

commons-fileupload-xxx.jar

commons-io-xxx.jar

spring.xml配置

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

檔案伺服器

沒有設定專用的檔案伺服器,與程式共用tomcat伺服器,在tomcat中設定

前端程式碼

提交的表單中增加屬性<form id="itemForm" enctype="multipart/form-data"

後端程式碼

controller中新增引數MultipartFile item_pic

@RequestMapping(value="editItemsSubmit",method=RequestMethod.POST)
	public String editItemsSubmit(HttpServletRequest request,HttpServletResponse response ,String createtime, Integer id, 
			@Validated ItemsCustom itemsCustom,BindingResult bindingResult, MultipartFile item_pic, Model model) throws Exception {
		
		if(bindingResult.hasErrors()) {
			List<ObjectError> errorlist = bindingResult.getAllErrors();
			for (ObjectError objectError : errorlist) {
				System.out.println(objectError.getDefaultMessage());
				
			}
			
			model.addAttribute("errorlist",errorlist );
			return "items/editItems";
		}
		
//		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//		
//		itemsCustom.setCreatetime(sdf.parse(createtime));
		
		//獲得圖片的原始名稱
		String originalFilename = item_pic.getOriginalFilename();
		
		//upload pic
		if(item_pic != null && originalFilename!=null && originalFilename.length()>0) {
			//存放圖片的物理路徑
			String file_path="C:/workspace/java/pic/";

			//圖片的新名稱
			 String pic_name = UUID.randomUUID() + originalFilename.substring(originalFilename.indexOf("."));
			//新圖片
			File newfile = new File(file_path + pic_name);
			//將圖片寫入磁碟
			item_pic.transferTo(newfile);
			
			
			itemsCustom.setPic(pic_name);
			
		}
		
		
		
		itemsService.updateItems(id, itemsCustom);
		
		return "success";
		
		
	}