SpringMVC快速入门(6)图片上传,配置虚拟目录,文件上传

SpringMVC快速入门(1)SpringMVC介绍、SpringMVC入门创建工程,SpringMVC执行流程
SpringMVC快速入门(2)商品列表的加载
SpringMVC快速入门(3)默认组件加载
SpringMVC快速入门(4)SpringMVC整合Mybatis,SpringMVC参数绑定
SpringMVC快速入门(5)高级参数的绑定,@RequestMapping注解的用法,Controller方法返回值,SpringMVC当中的异常处理
SpringMVC快速入门(6)图片上传,配置虚拟目录,文件上传
SpringMVC快速入门(7)JSON数据交互,RESTful支持(直接通过id访问对应的页面)
SpringMVC快速入门(8)拦截器,拦截器案例应用,登录拦截器

一、通过浏览器访问图片

1、配置虚拟目录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置完成
在这里插入图片描述
以上配置相当于在tomcat的server.xml文件当中配置
在这里插入图片描述

2、通过浏览器访问对应目录下的图片

在这里插入图片描述
访问路径:http://localhost:8080/pic/1.png
在这里插入图片描述

二、文件上传

1、引入jar包

在这里插入图片描述
在这里插入图片描述

2、配置多媒体解析器

在这里插入图片描述

	<!-- 配置多媒体处理器 -->
	<!-- 注意:这里id必须填写:multipartResolver -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<!-- 最大上传文件大小 -->
		<property name="maxUploadSize" value="8388608" />
	</bean>

限制最大上传8M=8388608

3、修改itemEdit.jsp

在这里插入图片描述

<form id="itemForm"	action="${pageContext.request.contextPath }/updateItem.action" enctype="multipart/form-data" method="post">
		<input type="hidden" name="id" value="${item.id }" /> 修改商品信息:
		<table width="100%" border=1>
			<tr>

在这里插入图片描述

			<tr>
				<td>商品生产日期</td>
				<td><input type="text" name="createtime"
					value="<fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>" /></td>
			</tr>
			<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>

访问http://localhost:8080/itemList.action

在这里插入图片描述
在这里插入图片描述

4、修改ItemController当中的updateItem实现上传图片的功能

在这里插入图片描述

	/**
	 * 修改商品 演示pojo参数绑定
	 * @param item
	 * @return
	 * @throws IOException 
	 * @throws IllegalStateException 
	 */
	@RequestMapping(value = "updateItem", method = { RequestMethod.POST, RequestMethod.GET })
	public String updateItem(Item item, MultipartFile pictureFile, Model model) throws  Exception {
		// 图片新名字
		String newName = UUID.randomUUID().toString();// 创建新的图片名称
		// 图片原来的名字
		String oldName = pictureFile.getOriginalFilename();
		// 后缀
		String sux = oldName.substring(oldName.lastIndexOf("."));
		//新建本地文件流
		File file = new File("D:\\tomcatimage\\" + newName + sux);
		// 写入本地磁盘
		pictureFile.transferTo(file);
		//保存图片到数据库
		item.setPic(newName + sux);

		itemService.updateItem(item);
		model.addAttribute("item", item);
		model.addAttribute("msg", "修改商品信息成功");
		return "itemEdit";
		// return "forward:itemEdit.action";//请求转发
		//return "redirect:itemList.action";// 重定向
	}
5、修改Item类,在createtime上添加@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

在这里插入图片描述

package com.itzheng.springmvc.pojo;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
public class Item {
    private Integer id;
    private String name;
    private Float price;
    private String detail;
    private String pic;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createtime;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }
    public Float getPrice() {
        return price;
    }
    public void setPrice(Float price) {
        this.price = price;
    }
    public String getDetail() {
        return detail;
    }
    public void setDetail(String detail) {
        this.detail = detail == null ? null : detail.trim();
    }
    public String getPic() {
        return pic;
    }
    public void setPic(String pic) {
        this.pic = pic == null ? null : pic.trim();
    }
    public Date getCreatetime() {
        return createtime;
    }
    public void setCreatetime(Date createtime) {
        this.createtime = createtime;
    }
	@Override
	public String toString() {
		return "Item [id=" + id + ", name=" + name + ", price=" + price + ", detail=" + detail + ", pic=" + pic
				+ ", createtime=" + createtime + "]";
	}
}
6、运行测试

http://localhost:8080/itemEdit.action?id=1
选择对应图片,提交
在这里插入图片描述
在这里插入图片描述

SpringMVC快速入门(1)SpringMVC介绍、SpringMVC入门创建工程,SpringMVC执行流程
SpringMVC快速入门(2)商品列表的加载
SpringMVC快速入门(3)默认组件加载
SpringMVC快速入门(4)SpringMVC整合Mybatis,SpringMVC参数绑定
SpringMVC快速入门(5)高级参数的绑定,@RequestMapping注解的用法,Controller方法返回值,SpringMVC当中的异常处理
SpringMVC快速入门(6)图片上传,配置虚拟目录,文件上传
SpringMVC快速入门(7)JSON数据交互,RESTful支持(直接通过id访问对应的页面)
SpringMVC快速入门(8)拦截器,拦截器案例应用,登录拦截器
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员猫爪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值