文件上傳原理簡單實現
2024-07-21 02:15:22
供稿:網友
 
要實現文件上載,我們必須先了解上載文件的http請求。下面這個簡單的應用示范了如何上載文件以及把http請求的原始數據寫入文件。用文本編輯器查看該文件即可了解請求的格式,在此基礎上我們就可以提取出上載文件的名字、文件內容以及原本混合在一起的其他信息。 
在這里我們寫一個簡單的html頁面up.html,提供一個表單,用戶從這里選擇文件并把文件上載到服務器。 
<html> 
<head> 
<title>文件上載</title> 
</head> 
<body> 
<form action="upjsp.jsp" enctype="multipart/form-data" method=post> 
<br /> 
公司: <input type="text" name="company" /> 
<br /> 
選擇要上載的文件 <input type="file" name="filename" /> 
<br /> 
<input type="submit" value="上載" /> 
</form> 
</body> 
</html> 
注意,<form>標記有一個enctype屬性,屬性值是"multipart/form-data"。還有個type為file的輸入框是用來選擇上傳文件的。 
表單的action屬性值是upjsp.jsp,這是將請求發送給upjsp.jsp文件。upjsp.jsp調用了名為upbean的javabean。 
程序如下: 
<jsp:usebean id="thebean" scope="page" class="upbean " /> 
<% 
thebean.doupload(request); 
%> 
  下面是upbean的實現代碼: 
import java.io.*; 
import javax.servlet.http.httpservletrequest; 
import javax.servlet.http.httpservletresponse; 
import javax.servlet.servletinputstream; 
public class upbean { 
public void doupload(httpservletrequest request) throws 
ioexception { 
printwriter pw = new printwriter( 
new bufferedwriter(new filewriter("test.txt"))); 
servletinputstream in = request.getinputstream(); 
int i = in.read(); 
while (i != -1) { 
pw.print((char) i); 
i = in.read(); 
} 
pw.close(); 
} 
} 
這個javabean把httpservletrequest對象的表單原始數據寫入test.txt文件. 
選擇上傳一個文本或者網頁文件。點擊“上載”按鈕之后,表單就發送給了upjsp.jsp文件,一起發送的還有上傳的文件。upjsp.jsp文件不會向瀏覽器發送任何應答內容,但它會生成一個test.txt文件。打開test.txt文件,我們可以看到上傳文件的內容和一些上傳的信息了。 
 
null