SpringMvc上传文件

本文详细介绍如何在Tomcat上配置虚拟图片上传目录,并通过SpringMVC实现图片上传功能,包括配置虚拟目录、SpringMVC.xml设置、JSP页面上传表单及Controller层处理。

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

太菜了…上传图片写了好久好久…

  • 配置虚拟上传目录
    在tomcat上配置图片虚拟目录,在tomcat下conf/server.xml中添加:
<Context docBase="D:\Student\upload\" path="/pic" reloadable="false"/>

访问http://localhost:8080/pic即可访问D:\Student\upload\下的图片。
也可以通过eclipse配置
在这里插入图片描述在这里插入图片描述

  • 导包
    在这里插入图片描述
  • 配置SpringMvc.xml
<!-- 文件上传,id必须设置为multipartResolver -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<!-- 设置文件上传大小 -->
		<property name="maxUploadSize" value="5000000" />
	</bean>
	<!-- 开启MVC事务注解 -->
	 <mvc:annotation-driven />
  • 在jsp页面中写一个上传图片的地方,一定要记得enctype="multipart/form-data"
    这里的${sessionScope.student.stdid}是从session中获取的已登录对象的id
<form method="post" action="${pageContext.request.contextPath }/AddStdpic.action" 
                  enctype="multipart/form-data">
                   <input type = "hidden" name = "stdid" value = "${sessionScope.student.stdid}"/>
                   <input type="file" name = "stdpicfile"/>
                   <input type = "submit" value = "上传"/>
  </form>
  • Controller层,注意上传文件接口:,MultipartFile stdpicfile
@RequestMapping("/AddStdpic.action")
	public String AddStdpic(StdpicBean stdpic,MultipartFile stdpicfile,HttpServletResponse response,HttpServletRequest request,Model model) throws IOException{
		
		//上传图片,设置图片名称,使用uuid函数,保证图片名称的唯一性,这样就可以上传重复的图片
		String stdpicname = UUID.randomUUID().toString().trim().replace("-", "");
		
		//获取文件名
		String filename = stdpicfile.getOriginalFilename();
		
		//获取文件后缀名
		String extname = filename.substring(filename.lastIndexOf("."));
		
		//开始上传图片,上传到本机D盘
		stdpicfile.transferTo(new File("D:/Student/upload/"+stdpicname+extname));
		
		//添加图片
		stdpic.setStdpicname(stdpicname+extname);
		stdpicservice.AddStdpic(stdpic);
		
		//回到space.jsp中,发起ajax请求,查询所有图片
		return "/space";
	}

这样就大功告成了,我为什么能写这么久…崩溃…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值