JSP页面如何实现文件上传下载

Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。下面,小编为大家搜索整理了JSP页面如何实现文件上传下载,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!

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();