JSP頁面如何實現文件上傳下載
Java 技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於PC、數據中心、遊戲控制枱、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社羣。下面,小編為大家搜索整理了JSP頁面如何實現文件上傳下載,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!
名稱:jsp頁面上傳類
作者:SinNeR
Mail:vogoals[at]
特點:
可以多文件上傳;
返回上傳後的文件名;
form表單中的其他參數也可以得到。
先貼上傳類,JspFileUpload
package ;
import eredOutputStream;
import ;
import OutputStream;
import ception;
import leDateFormat;
import yList;
import ;
import table;
import letInputStream;
import ServletRequest;
/*
* vogoalAPI 1.0
* Auther
* by
* mail:
*/
/**
* JSP上傳文件類
*
* @author SinNeR
* @version 1.0
*/
public class JspFileUpload {
/** request對象 */
private HttpServletRequest request = null;
/** 上傳文件的路徑 */
private String uploadPath = null;
/** 每次讀取得字節的大小 */
private static int BUFSIZE = 1024 * 8;
/** 存儲參數的Hashtable */
private Hashtable paramHt = new Hasptable();
/** 存儲上傳的文件的文件名的ArrayList */
private ArrayList updFileArr = new ArrayList();
/**
* 設定request對象。
*
* @param request
* HttpServletRequest request對象
*/
public void setRequest(HttpServletRequest request) {
est = request;
}
/**
* 設定文件上傳路徑。
*
* @param path
* 用户指定的文件的上傳路徑。
*/
public void setUploadPath(String path) {
adPath = path;
}
/**
* 文件上傳處理主程序。
*
* @return int 操作結果 0 文件操作成功;1 request對象不存在。 2 沒有設定文件保存路徑或者文件保存路徑不正確;3
* 沒有設定正確的enctype;4 文件操作異常。
*/
public int process() {
int status = 0;
// 文件上傳前,對request對象,上傳路徑以及enctype進行check。
status = preCheck();
// 出錯的時候返回錯誤代碼。
if (status != 0)
return status;
try {
// 參數或者文件名
String name = null;
// 參數的value
String value = null;
// 讀取的流是否為文件的標誌位
boolean fileFlag = false;
// 要存儲的文件。
File tmpFile = null;
// 上傳的文件的名字
String fName = null;
FileOutputStream baos = null;
BufferedOutputStream bos = null;
// 存儲參數的Hashtable
paramHt = new Hashtable();
updFileArr = new ArrayList();
int rtnPos = 0;
byte[] buffs = new byte[BUFSIZE * 8];
// 取得ContentType
String contentType = ontentType();
int index = xOf("boundary=");
String boundary = "--" + tring(index + 9);
String endBoundary = boundary + "--";
// 從request對象中取得流。
ServletInputStream sis = nputStream();
// 讀取1行
while ((rtnPos = Line(buffs, 0, th)) != -1) {
String strBuff = new String(buffs, 0, rtnPos);
// 讀取1行數據
if (tsWith(boundary)) {
if (name != null && ()th() > 0) {
if (fileFlag) {
h();
e();
e();
baos = null;
bos = null;
(fName);
} else {
Object obj = (name);
ArrayList al = new ArrayList();
if (obj != null) {
al = (ArrayList) obj;
}
(value);
tln(value);
(name, al);
}
}
name = new String();
value = new String();
-
java構造函數調用技巧
Java是一個純的面向對象的程序設計語言,它繼承了C++語言面向對象技術的核心,Java捨棄了C++語言中容易引起錯誤的指針(以引用取代)、運算符重載(operatoroverloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用於回收不再被引用的對象所佔據的內存空間,...
-
java中反射機制
導語:Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++裏難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。下面我們來看看java中反射機制,希望對大家有所幫助。Java中什麼是反射機制:(JavaReflactioninaction)Java反射...
-
java圖片處理功能介紹
java可實現縮放圖像、切割圖像、圖像類型轉換、彩色轉黑白、文字水印、圖片水印等常用功能,本文是本站小編搜索整理的關於java圖片處理功能介紹,供參考學習,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!代碼如下複製代碼importaComposi...
-
新手學習Java最高效的10個計劃
對於新手來説學習Java如同堵天書,下面是本站小編收集的關於新手學習Java最高效的10個計劃,希望可以為您的學習帶來幫助!計劃一:瞭解未來技術發展方向兩耳不聞窗外事,在如今是不合適的,尤其是在瞬息萬變的互聯網時代,作為一個開發者技術跟不上可以去專研,思想要跟不上,...