SSM图片上传

前台上传数据图片

先看一下前台jsp页面提交一张图片,方法为post

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
   
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
 <meta http-equiv="Content-Type" content="multipart/form-data; charset=utf-8" />
<title>上传单个文件</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/photo"  method="post" enctype="multipart/form-data" >
<input type="file" name="photo"/>
<input type="submit" value="提交"/>
</form>
<img alt="测试" src="http://localhost:8000/SSM_TEST/statics/images/${filename}">
</body>
</html>

后台Controller接收

   //上传文件   
   @RequestMapping("/photo")
   //上传多文件(使用数组MultipartFile【】 photo 遍历一遍即可)
   public String getphoto(MultipartFile photo,HttpSession session,Model model) throws IllegalStateException, IOException {
	System.out.println("上传文件需要MultipartFile类===========和session作用域");  
	System.out.println("点击提交即使不传入图片也会返回一个对象所以要判断");
	if(!photo.isEmpty()) {
	System.out.println("getServletContext().getRealPath是要把图片放哪里'/'表示根");
	String path=session.getServletContext().getRealPath("//statics/images");
	System.out.println(path);
	String filename=photo.getOriginalFilename();
	System.out.println(filename);
	if(filename.endsWith(".jpg")||filename.endsWith(".PNG")) {
		File file=new File(path,filename);
		System.out.println(file);
		photo.transferTo(file);
	}
	model.addAttribute("filename", filename);
	}
	return "photo";    
   }

简单的两部即可:

但是问题很多:首先不会显示在项目里面

上传的路径是tomcat的如下文件夹下

image

访问时候需要改变一下(地址)

<img alt="测试" src="http://localhost:8000/SSM_TEST/statics/images/${filename}">

注意需要在spring.xml下添加

<!-- 文件上传解析器 -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" >
		<!-- 设置文件上传的大小  -->
		<property name="defaultEncoding" value="utf-8"></property>
		<property name="maxUploadSize" value="1048567"/>
    </bean>
posted @ 2021-11-03 10:47  旅祸少年  阅读(111)  评论(0)    收藏  举报