基于springMvc的文件(图片)上传

一、首先 先导入上传所需要的两个基础包

二、在前段jsp的表单中设置如下

 enctype="multipart/form-data"    该属性是关键(必须要写)

<form id="itemForm"	action="${pageContext.request.contextPath }/updateitem.action" method="post" enctype="multipart/form-data">

另外表单内还要设置
           该input中的type属性必须是file  并且要写name   该name是后台传过去的name
                    <input type="file"  name="pictureFile"/>

<tr>
				<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>
			</tr>

前台页面已经搞完。。。。。。。。。。。。。

----------------------------------------我是一条华丽的分割线 -------------------------------------------------------------

后台操作

在所需要方法设置形参 形参名字必须是上面input中的name的值

必须是public String EditItems(MultipartFile pictureFile)

public String EditItems(MultipartFile pictureFile,Items items) throws Exception {

        // 图片上传
        // 设置图片名称,不能重复,可以使用uuid
        String picName = UUID.randomUUID().toString();

        // 获取文件名
        String oriName = pictureFile.getOriginalFilename();
        // 获取图片后缀
        String extName = oriName.substring(oriName.lastIndexOf("."));

        // 开始上传
        pictureFile.transferTo(new File("F:/upload/" + picName + extName));

        // 设置图片名到商品中
        items.setPic(picName + extName);



        //然后把数据存到数据库中去   数据库中的是该图片的名称  通过该名称 就可以找到本地的图片
        //更新修改商品列表
        itemsService.updateitem(items);


        return "forward:/itemEdit.action"; 

}

关键地方 就是在springMvc中配置

<!-- 文件上传,id必须设置为multipartResolver -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

<!-- 文件上传,id必须设置为multipartResolver -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<!-- 设置文件上传大小  单位是B -->
		<property name="maxUploadSize" value="5000000" />
	</bean>

基本步骤已经完成。

开始测试

上传一张图片

上传成功 页面显示

本地仓库和数据库



数据库中

与本地仓库的图片id是一致的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值