使用spring MVC 获得用户上传的文件

本文介绍了如何在Spring MVC框架中使用CommonsMultipartFile接收和处理用户上传的文件,包括在配置文件中设置bean,以及在后端控制器中获取并处理上传的图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用spring MVC 获得用户上传的文件

使用CommonsMultipartFile获得文件

1、我们首先需要在*-servle.xml文件中配置一个bean,以用来对客户端发送图片的预处理。

<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 -->
		    <bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		        <property name="defaultEncoding" value="UTF-8" />
		        <!-- 指定所上传文件的总大小,单位字节。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
		        <property name="maxUploadSize" value="10240000" />
		    </bean>

2、我们的后端控制层处理简单如下,即可从前端请求中获取到用户上交的图片:

RequestMapping(value="doctorRegisterAndPic.do")
	@ResponseBody
	public boolean doctorRegister(@ModelAttribute User user,@RequestParam
			String validatecode,@RequestParam CommonsMultipartFile file,HttpSession httpSession) {
		System.out.println("医生注册测试");
		return loginServiceImpl.registeredDoctor(user, httpSession, validatecode, file);
	}

3、处理请求CommonsMultipartFile file文件,对应的处理方法如下:

/**
	 * 上传图片
	 * 同时上传
	 */
	 public boolean photoUpload(MultipartFile file,User user) throws IllegalStateException, IOException{
	        if (file!=null) {// 判断上传的文件是否为空
	            String path=null;// 文件路径
	            String type=null;// 文件类型
	            String fileName=file.getOriginalFilename();// 文件原名称
	            System.out.println("上传的文件原名称:"+fileName);
	            String realPath= "C:\\Users\\yangjieyu\\Desktop\\git\\hnust\\user\\";
	            // 判断文件类型,得到文件
	            type=fileName.indexOf(".")!=-1?fileName.substring(fileName.lastIndexOf(".")+1, fileName.length()):null;
	            if (type!=null) {// 判断文件类型是否为空
	                if ("GIF".equals(type.toUpperCase())||"PNG".equals(type.toUpperCase())||"JPG".equals(type.toUpperCase())) {    
	                    // 设置存放图片文件的路径
	                    path=realPath+user.getUsername();
	                    File dir = new File(path);
	                    if(dir.exists()) {
	                    
	                    }else {
	                    	dir.mkdirs();
	                    }
	                    path = path+"\\"+fileName;
	                    System.out.println("存放图片文件的路径:"+path);
	                    // 转存文件到指定的路径
	                    file.transferTo(new File(path));
	                    System.out.println("文件成功上传到指定目录下");
	                    user.setIdAddress(path);
	                }else {
	                    System.out.println("不是我们想要的文件类型,请按要求重新上传");
	                    return false;
	                }
	            }else {
	                System.out.println("文件类型为空");
	                return false;
	            }
	        }else {
	            System.out.println("没有找到相对应的文件");
	            return false;
	        }
	        return true;
	    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值