spring mvc图片上传无法进入controller

在使用spring mvc上传图片时,可以很方便在controller层函数传入MultipartFile参数,获取上传图片的信息,从而可以实现图片的存储和展示。

但是在今天完成项目的修改资料功能上,发现了图片上传的一些问题:在这里插入图片描述

如果上传图片进行信息的更新是没有问题的,因为使用@RequestParam MultipartFile file可以在控制层获得文件信息,并且存储至数据库,但是如果本次资料更新没有上传新的图片而是只修改了姓名、昵称…等别的信息时,就无法传入controller层接收了。应该是MultipartFile 参数的问题,所以要换个方式来接收图片文件信息。
 String path="static/images";//逻辑路径:存储在数据库的路径信息,上传成功后可以通过拼接url访问到该图片资源信息
String myGetRealPath = myGetRealPath(path, request);//获得图片上传后在本地路径
		boolean isMutipart = ServletFileUpload.isMultipartContent(request);
		if(isMutipart){//如果是图片上传
	MultipartHttpServletRequest nativeRequest = WebUtils.getNativeRequest(request, MultipartHttpServletRequest.class);
		MultipartFile imgFile = nativeRequest.getFile("imgFile");
		if(imgFile!=null){//判断是否传入了图片文件,如果上传了图片就进行处理,按照流的方式拷贝到服务器上
}else{//如果没有上传图片信息,图片地址按照原地址存储
}
Spring mvc下图片文件上传时的几个点:
1.spring.xml: 配置文件上传解释器
 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
 <property name="maxUploadSize"> 
 <value>5242880</value>
 </property> </bean>
2.form表单中要有属性:enctype="multipart/form-data"
3.图片存储到数据库时生成新的地址方法:使用UUID
	public String newFileName(MultipartFile imgFile){//参数是文件对象
		String originalFilename = imgFile.getOriginalFilename();
	    //abc.jpg
		//截取后缀,拼接新的文件名
		//后缀
		String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
		//新文件名要求:上传中-防止文件名重复,发生覆盖
		String uu = UUID.randomUUID().toString();
		String newName=uu+substring;
		return  newName;
		
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值