文件上傳原理簡單實現
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