springmvc 图片上传处理

本文详细介绍SpringMVC中图片上传的实现过程,包括配置虚拟目录、引入所需jar包、设置多媒体解析器、编写jsp页面及controller层代码,强调正确配置的重要性。

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

springmvc 图片上传处理是企业经常用的到的一种技术,下面是该技术的具体过程

图片上传处理实现

步骤:

一、配置虚拟目录并测试

1、在自己的电脑创建一个放图片文件的目录,放入几张图片

 

2、打开eclipse,打开tomcat Modules

 

3、创建虚拟目录 点击 Add External Web Modules

相当于在tomcat>server.xml配置了

 

4、虚拟目录/pic创建完成,启动服务器

 

5、测试,打开谷歌浏览器输入url http://localhost:8080/pic/xue.jpg 成功,开始编码

 

二、代码实现

代码注释解析的很清楚,不作过多的说明

1、引入图片上传所需要的jar https://pan.baidu.com/s/1JQIY0y3EwzPJ8H01QsOiqg 提取码:sv3g

2、在springmvc核心配置文件配置多媒体解析器

<!-- 配置多媒体解析器,这里id必须写multipartResolver -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<!-- 最大上传大小 8m=8*1024*1024b -->
		<property name="maxUploadSize" value="8388608"></property>
	</bean>

3、jsp页面

要指定属性:enctype="multipart/form-data",提交方式必须是post

	<!-- 上传图片是需要指定属性 enctype="multipart/form-data",必须要post提交-->
	<form id="itemForm"	action="${pageContext.request.contextPath }/updateItem.action" method="post" enctype="multipart/form-data">
				<td>商品图片</td>
				<td>
					<c:if test="${item.pic !=null}">
						<img src="/pic/${item.pic}" width=100 height=100/>
						<br/>
					</c:if>
					<input type="file"  name="pictureFile"/> 
				</td>

4、controller层(重点)

参数,MultipartFile pictureFile 名字必须与jsp页面一致

重要逻辑如下图(掌握):

@RequestMapping(value="updateItem", method= {RequestMethod.POST,RequestMethod.GET})
	public String updateByItem(Item item, MultipartFile pictureFile) throws IllegalStateException, IOException {
		if (pictureFile != null && !pictureFile.isEmpty()) {//选择文件不为空才执行
			//使用UUID随机生成图片名字
			String imaName = UUID.randomUUID().toString();
			//得到图片名称
			String filename = pictureFile.getOriginalFilename();
			//截取图片后缀名
			String imaLastName = filename.substring(filename.lastIndexOf("."));
			//创建本地文件流,存放更新后的图片的位置
			File file = new File("E:\\images\\" + imaName + imaLastName);
			//存储到本地仓库
			pictureFile.transferTo(file);
			//更新数据库
			item.setPic(imaName + imaLastName); 
			System.out.println(item);
		}
		itemService.updateByItem(item);
		return "forward:item.action";
	}

 

 

注意:没有指定enctype="multipart/form-data"提交、post提交、本地file路径写错是最容易造成图片上传错误!

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值