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>

接下來我們進行一個上傳圖片文件的測試:

如上爲上傳圖片界面,通過輸入框選擇了圖片,點擊上傳如下:

如上我們可以看到,此文件已經上傳成功了,已經可以在頁面顯示我們之前上傳的圖片,我們再看一下目錄是否已經存在此文件:

如上所示,服務器目錄也已經存在此圖片文件,則我們的上傳圖片文件的案例運行成功。

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