jsp中上传文件的源代码
使用方法:下面的代码写在servlet的doPost()方法中,
doPost(request, response){
Upload myUpload = new Upload();
myUpload.init(request);
myUpload.setSaveDir(SERVER_SAVE_DIR);// 上传路径
myUpload.uploadFile();
}
源代码:
package cae;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Upload {
private String saveDir = "."; // 要保存文件的路径
private String contentType = ""; // 文档类型
private String charset = ""; // 字符集
private ArrayList tmpFileName = new ArrayList(); // 临时存放文件名的数据结构
private Hashtable parameter = new Hashtable(); // 存放参数名和值的数据结构
private ServletContext context; // 程序上下文,用于初始化
private HttpServletRequest request; // 用于传入请求对象的实例
private String boundary = ""; // 内存数据的分隔符
private int len = 0; // 每次从内在中实际读到的字节长度
private String queryString;
private int count; // 上载的文件总数
private String[] fileName; // 上载的文件名数组
private long maxFileSize = 1024 * 1024 * 10; // 最大文件上载字节;
private String tagFileName = "";
public final void init(HttpServletRequest request) throws ServletException {
System.out.println("Myupload enter...");
this.request = request;
boundary = request.getContentType().substring(30); // 得到内存中数据分界符
queryString = request.getQueryString();
}
public String getParameter(String s) { // 用于得到指定字段的参数值,重写request.getParameter(String
// s)
if (parameter.isEmpty()) {
return null;
}
return (String) parameter.get(s);
}
public String[] getParameterValues(String s) { // 用于得到指定同名字段的参数数组,重写request.getParameterValues(String
// s)
ArrayList al = new ArrayList();
if (parameter.isEmpty()) {
return null;
}
Enumeration e = parameter.keys();
while (e.hasMoreElements()) {
String key = (String) e.nextElement();
if (-1 != key.indexOf(s + "
页:
[1]