明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

文件上傳原理容易完成

[摘要]要實現(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