SpringMVC-文件上传

在SpringMVC的开发中我们必不可少的需要用到文件上传功能,其开发步骤与Struts2有一些相似之处,在本文中通过一个图片上传的案例进行讲解。

在进行文件上传的开发时我们需要加入如下jar包:

百度云下载:点击下载


首先我们先看一下上传图片的页面代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>
<!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="text/html; charset=UTF-8">
<title>图片上传</title>
</head>
<body> 

	<form id="phtotForm" action="${pageContext.request.contextPath }/data/photoUpload.action" method="post" enctype="multipart/form-data">
		<input type="file"  name="pictureFile"/> 
		<input type="submit" value="上传"/>
	</form>
	
</body>
</html>

如上代码所示,在form标签中我们可以看到有了一个enctype="multipart/form-data"的属性,这个属性就指定了我们上传的是文件类型,那么在speinrmvc中我们就要对multipart类型的数据进行解析。

注意:<input type="file"  name="pictureFile"/>  中的name与Conreoller方法的参数MultipartFile pictureFile一致。

则在springmvc.xml中添加解析器代码如下:

<!-- 文件上传配置 -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<!-- 设置上传文件的最大尺寸 -->
		<property name="maxUploadSize">
			<value>5242880</value>
		</property>
	</bean>

接下来我们可以在Controller中进行上传文件的后台的编写了:

        //图片上传功能实现
	@RequestMapping("/photoUpload")
	public String photoUpload(Model model,MultipartFile pictureFile){
		//选择文件的名称
		String picture_name = pictureFile.getOriginalFilename();
		//上传图片
		File uploadPic = new java.io.File("E:/JavaWeb/Servlet/fileupload/temp/"+picture_name);
		
		if(uploadPic.exists()){
			uploadPic.mkdirs();
		}
		//向磁盘写入文件
		try {
			pictureFile.transferTo(uploadPic);
		} catch (IllegalStateException | IOException e) {
			e.printStackTrace();
		}
		model.addAttribute("picture_name", picture_name);
		model.addAttribute("mkdir", uploadPic);
		
		return "/FileUploadSuccess";
          }
如上代码所示,即将页面选中的图片上传到了指定的目录中去,其文件名不变。

图片上传成功后,跳转到成功页面:

<%@ 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="text/html; charset=UTF-8">
<title>上传成功</title>
</head>
<body>
	<p>图片文件上传成功</p>
	<p>文件名称:</p>
	<p>${picture_name}</p>
	<p>上传图片如下:</p>
	<img alt="上传图片" src="${mkdir}">
</body>
</html>

接下来我们进行一个上传图片文件的测试:

如上为上传图片界面,通过输入框选择了图片,点击上传如下:

如上我们可以看到,此文件已经上传成功了,已经可以在页面显示我们之前上传的图片,我们再看一下目录是否已经存在此文件:

如上所示,服务器目录也已经存在此图片文件,则我们的上传图片文件的案例运行成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章