1. 程式人生 > >form表單提交資料的同時上傳檔案程式碼示例

form表單提交資料的同時上傳檔案程式碼示例

                              form表單提交資料的同時在表單中上傳檔案程式碼示例

 

 一.定義頁面

注意:在form表單中加入屬性 enctype="multipart/form-data"  表示此表單支援檔案上傳;

我的程式碼示例最主要是講如何在表單中獲取檔案資料,具體檔案上傳在哪裡你們自己定,我這個示例中檔案是上傳在本地,檔案存放的程式碼不全;

<%@ 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> 
	<!-- 上傳圖片是需要指定屬性 enctype="multipart/form-data" -->
	<!-- <form id="itemForm" action="" method="post" enctype="multipart/form-data"> -->
	<form id="itemForm"	action="${pageContext.request.contextPath }/updateitem.action" method="post"
		enctype="multipart/form-data">
		<input type="hidden" name="id" value="${item.id }" /> 修改商品資訊:
		<table width="100%" border=1>
			<tr>
				<td>商品名稱</td>
				<td><input type="text" name="name" value="${item.name }" /></td>
			</tr>
			<tr>
				<td>商品價格</td>
				<td><input type="text" name="price" value="${item.price }" /></td>
			</tr>
			
			<tr>
				<td>商品生產日期</td>
				<td><input type="text" name="createtime"
					value="<fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>" /></td>
			</tr>
			<tr>
				<td>商品圖片</td>
				<td>
					<c:if test="${item.pic !=null}">
						<img src="${item.pic}" width=100 height=100/>
						<br/>
					</c:if>
					<input type="file"  name="pictureFile"/> 
				</td>
			</tr>
			<tr>
				<td>商品簡介</td>
				<td><textarea rows="3" cols="30" name="detail">${item.detail }</textarea>
				</td>
			</tr>
			<tr>
				<td colspan="2" align="center"><input type="submit" value="提交" />
				</td>
			</tr>
		</table>

	</form>
</body>

</html>

 二.後臺

@RequestMapping("/updateitem.action")
	public void updateitem(HttpServletResponse response,Item item,MultipartFile pictureFile) throws IOException{
		System.out.println(item);
		//使用UUID給檔案取一個物理名稱
		String fileName = UUID.randomUUID().toString();
		//獲取檔案的字尾
		String fname = pictureFile.getOriginalFilename();
		String ext = fname.substring(fname.lastIndexOf("."));
		//將圖片傳入指定的目錄    //儲存路徑  C:\igeek47temp\098234IA1309284ABA09F098.jpg
		pictureFile.transferTo(new File(PIC_PATH+fileName+ext));
		//將圖片的訪問路徑儲存到item物件中。   /pic/098234IA1309284ABA09F098.jpg
		item.setPic("/pic/"+fileName+ext);
		itemService.updateItem(item);
		//重定向到商品列表
		response.sendRedirect("itemList.action");
	}

三.springMVC配置

	<!-- 檔案上傳,id必須設定為multipartResolver -->
<bean id="multipartResolver"
	class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<!-- 設定檔案上傳大小 -->
	<property name="maxUploadSize" value="5000000" />
</bean>