ssm项目上传图片

1、导入依赖

	<!-- 文件上传 -->
	<dependency>
	    <groupId>commons-fileupload</groupId>
	    <artifactId>commons-fileupload</artifactId>
	    <version>1.3.3</version>
	</dependency>

2、前端控制器配置的是拦截所有请求,在springmvc.xml中放行静态资源:

    <!--配置静态资源映射,防止静态资源被拦截  -->
	<mvc:resources location="/resources/" mapping="/resources/**"/>

3、在springmvc.xml中配置文件上传解析器:

    <!-- 定义文件上传解析器 -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<!-- 设定默认编码 -->
		<property name="defaultEncoding" value="UTF-8"></property>
		<!-- 设定文件上传的最大值5MB,5*1024*1024 -->
		<property name="maxUploadSize" value="5242880"></property>
	</bean>

4、jsp页面配置表单属性,加上enctype=“multipart/form-data”

<form class="form-horizontal" action="addBook" id="addBookForm" method="post" enctype="multipart/form-data">
	<!-- 封面图片 -->
	<div class="form-group">
	  <label class="col-sm-2 control-label">封面图片</label>
	  <div class="col-sm-9">
		<input type="file" name="pictureFile">
	  </div>
	</div>
</form>

5、后台控制器

	@RequestMapping(value="/addBook",method=RequestMethod.POST)
	public String addBook(Book book,String[] tagIds,MultipartFile pictureFile,HttpServletRequest request) throws Exception
	{
		//使用UUID给图片重命名,并去掉四个“-”
		String name = UUID.randomUUID().toString().replaceAll("-", "");
		//获取文件的扩展名
		String ext = FilenameUtils.getExtension(pictureFile.getOriginalFilename());
		
		//设置图片上传路径
		String url = request.getSession().getServletContext().getRealPath("/resources/image/");
	
		//以绝对路径保存重名命后的图片
		pictureFile.transferTo(new File(url+"/"+name + "." + ext));

		System.out.println("上传路径:"+url+"/"+name + "." + ext);
		
		//设置数据库保存路径
		book.setImagePath("resources/image/"+name+"."+ext);
		
		//添加书籍信息
		bookService.addBook(book,tagIds);
		
		return "redirect:/bookList";
	}

6、效果截图
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值