把一個指定的文件上傳到服務器,通常依靠JSP技術完成,需要使用到兩個JSP頁面。第一個JSP頁面是選擇要上傳的文件,第二個JSP頁面是從客戶端獲取該文件里面的信息,并把這些信息以客戶端相同的格式保存在服務器端,該頁面主要為功能處理頁面。
第一個頁面的實現必須含有FILE類型的表單,并且表單的enctype的屬性必須為"muldtipart/form-data"。
第二個頁面要使用內置對象request調用方法getInputStream()獲得一個輸入流,通過這個輸入流讀取客戶上傳的全部信息,如上傳文件的 名字,文件的大小,文件的類型。根據request所獲得的信息創建一個數據輸出流對象,把信息寫到一個指定的文件內
第一個文件內容如下:
<body>
<form method="post" action="file_14.jsp" enctype="multipart/form-data">
<input type="file" name="file1" size="50" /><br>
<input type="submit" value="上傳" />
</form>
第二個文件內容如下:
<%@ page contentType="text/html; charset='utf-8'" %>
<%@ page import="java.io.*" %>
<%@ page import ="java.util.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import = "javax.servlet.http.*" %>
<body>
<%
int MAX_SIZE = 102400 * 102400; //定義上傳文件的最大字節
String rootPath; //創建跟路徑的保存變量
DataInputStream in = null; //聲明文件讀入類
FileOutpubStream fileOut = null; //
String remoteAddr = request.getRemoteAddr(); //取得客戶端的網絡地址
String servName = request.getServerName(); //獲得服務器的名字
out.print("serverName=" + serverName + "<br>");
out.print("request.getServletPath() = " + request.getServletPath() + "<br>")