ajax上传带文件的form表单,springmvc接收




数据都保存到HttpServletRequest中

@Override
	public boolean insertBook(HttpServletRequest request) {
		try{
			//用于封装数据
			Book book = new Book();
			
			//解析请求中的数据
			MultipartHttpServletRequest mpRequest = (MultipartHttpServletRequest) request;
			
			String bookName = mpRequest.getParameter("bookName");
			float price = Float.parseFloat(mpRequest.getParameter("price"));
			Integer num = Integer.parseInt(mpRequest.getParameter("num"));
			String date = mpRequest.getParameter("publishDate");
			SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");
			Date publishDate = format.parse(date);
			
			//封装数据
			book.setBookName(bookName);
			book.setPrice(price);
			book.setNum(num);
			book.setPopular(0);
			book.setPublishDate(publishDate);
			
			MultipartFile file = mpRequest.getFile("imageUrl");
			String path = request.getSession().getServletContext().getRealPath("bookImage");
			String imageUrl = UploadUtil.uploadFile(file, path);
			book.setImageUrl(imageUrl);
			
			bookMapper.insertBook(book);
			return true;
		}catch(Exception e){
			e.printStackTrace();
			return false;
		}
		//return false;
	}


解析存放图片的imageUrl

public static String uploadFile(MultipartFile file, String path) throws IOException{
		//上传文件的真实名称
		String name = file.getOriginalFilename();
		//System.out.println(name);
		//获取后缀名
		String suffixName = name.substring(name.lastIndexOf("."));
		//System.out.println(suffixName);
		//自定义随机数
		String hash = Integer.toHexString(new Random().nextInt());
		String fileName = hash + suffixName;
		//System.out.println(fileName);
		
		File tempFile = new File(path, fileName);
		if(!tempFile.getParentFile().exists()){
			tempFile.getParentFile().mkdir();
		}
		if(tempFile.exists()){
			tempFile.delete();
		}
		tempFile.createNewFile();
		file.transferTo(tempFile);
		return tempFile.getName();
	}

参考文章:http://blog.csdn.net/wlphyl/article/details/51571402

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值