SpringMVC上传文件,及回调图片

导入相关jar包

导入commons-fileupload-1.3.1.jar 与 commons-io-2.2.jar

编写前端页面

input类型为file,form标签提交方式为post,entype属性值改为multipart/form-data

<form action="file" method="post" enctype="multipart/form-data">
   <input type="file" name="file">
   <input type="submit" value="提交">
</form>
${msg}

编写Springmvc的配置文件

配置目标方法内形参的一个实现类,此bean的ID不可改变,

  <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--       最大上传文件大小 单位为B-->
     <property name="maxUploadSize" value="50000" />
<!--      缓存空间大小 -->
     <property name="maxInMemorySize" value="1024" />
<!--      编码格式 -->
     <property name="defaultEncoding" value="UTF-8"></property>
<!--      是否为懒加载 -->
     <property name="resolveLazily" value="true"></property>
</bean>

编写后台java上传控制类

此文件上传至服务器所在电脑的一个盘,防止服务器重启文件消失

	@RequestMapping("file")
	public String file(MultipartFile file,ModelMap map){
		long date = (new Date()).getTime();
//		文件前缀,取值为当前时间到1970年的毫秒数,防止文件名重复
	    String s = String.valueOf(date);
//	    获取文件名
		String oriName = file.getOriginalFilename();
//		获取文件后缀名
// String extName = oriName.substring(oriName.lastIndexOf("."));
//拼接文件名称
		StringBuffer name = new StringBuffer();
		name.append(s);
		name.append("_");
		name.append(oriName);
		try {
		//使用ModelMap 的方法直接保存文件到指定路径
			file.transferTo(new File("E:/img/"+name.toString()));
			//传文件名到前端取值,可以直接获取到该图片
			map.put("imageName", oriName);
		} catch (IllegalStateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "success";
	}

把文件存到本地磁盘后需要在服务器中获取上传的文件,可以直接将文件名添加到数据库,然后再前端取值时将文件名传值到前端,显示文件
在这里插入图片描述

在前端取时直接通过编写的路径加后台传来的值即可

<img alt="图片" src="/img/${imageName}">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值