文件上傳原理容易完成
發(fā)表時間:2023-08-18 來源:明輝站整理相關軟件相關文章人氣:
[摘要]要實現(xiàn)文件上載,我們必須先了解上載文件的HTTP請求。下面這個簡單的應用示范了如何上載文件以及把HTTP請求的原始數(shù)據(jù)寫入文件。用文本編輯器查看該文件即可了解請求的格式,在此基礎上我們就可以提取出上...
要實現(xiàn)文件上載,我們必須先了解上載文件的HTTP請求。下面這個簡單的應用示范了如何上載文件以及把HTTP請求的原始數(shù)據(jù)寫入文件。用文本編輯器查看該文件即可了解請求的格式,在此基礎上我們就可以提取出上載文件的名字、文件內(nèi)容以及原本混合在一起的其他信息。
在這里我們寫一個簡單的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,這是將請求發(fā)送給upjsp.jsp文件。upjsp.jsp調(diào)用了名為UpBean的JavaBean。
程序如下:
<jsp:useBean id="TheBean" scope="page" class="UpBean " />
<%
TheBean.doUpload(request);
%>
下面是UpBean的實現(xiàn)代碼:
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對象的表單原始數(shù)據(jù)寫入test.txt文件.
選擇上傳一個文本或者網(wǎng)頁文件。點擊“上載”按鈕之后,表單就發(fā)送給了upjsp.jsp文件,一起發(fā)送的還有上傳的文件。upjsp.jsp文件不會向瀏覽器發(fā)送任何應答內(nèi)容,但它會生成一個test.txt文件。打開test.txt文件,我們可以看到上傳文件的內(nèi)容和一些上傳的信息了。
null