package com.test.test;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
public class uploadFile {
public static final int MAX_SIZE = 1024 * 1024*100;
public static final String FILE_DIR = "d:/temp/";
private int file_Size=0;
private String file_Path = "";
private HashMap hm = new HashMap();
public String upLoad(HttpServletRequest req) {
String tmpString ="";
String result = "";
DataInputStream dis = null;
try {
dis = new DataInputStream(req.getInputStream());
String content = req.getContentType();
if (content != null && content.indexOf("multipart/form-data") != -1) {
int reqSize = req.getContentLength();
byte[] data = new byte[reqSize];
int bytesRead = 0;
int totalBytesRead = 0;
int sizeCheck = 0;
while (totalBytesRead < reqSize) {
// check for maximum file size violation
sizeCheck = totalBytesRead + dis.available();
if (sizeCheck > MAX_SIZE)
result = "gfd...";
bytesRead = dis.read(data, totalBytesRead, reqSize);
totalBytesRead += bytesRead;
}
tmpString = new String(data);
hm = parseAnotherParam(tmpString);
System.out.println("src datatmp |"+new String(data)+"|");
int postion = arrayIndexOf(data, "\r\n".getBytes());
byte[] split_arr = new byte[postion];
System.arraycopy(data, 0, split_arr, 0, postion);
System.out.println("split |"+new String(split_arr)+"|");
postion = arrayIndexOf(data, "filename=\"".getBytes());
byte[] dataTmp = new byte[data.length - postion];
System.arraycopy(data, postion, dataTmp, 0, dataTmp.length);
data = null;
data = dataTmp.clone();
String filePath =null;
postion = arrayIndexOf(data, "Content-Type:".getBytes())-2;
dataTmp = null;
dataTmp = new byte[postion];
System.arraycopy(data, 0, dataTmp, 0, dataTmp.length);
filePath = new String(dataTmp);
if (filePath==null && filePath.equals("")) return "";
System.out.println("filename |"+filePath+"|");
// 分离contentType 并赋值
postion = arrayIndexOf(data, "Content-Type:".getBytes());
dataTmp = null;
dataTmp = new byte[data.length - postion];
System.arraycopy(data, postion, dataTmp, 0, dataTmp.length);
data = null;
data = dataTmp.clone();
System.out.println("src adatatmp |"+new String(data)+"|");
postion = arrayIndexOf(data, "\n".getBytes()) + 1;
dataTmp = null;
dataTmp = new byte[data.length - postion];
System.arraycopy(data, postion, dataTmp, 0, dataTmp.length);
data = null;
data = dataTmp.clone();
System.out.println("datatmp |"+new String(data)+"|");
// 分离文件信息 获得最终想要的字节
postion = arrayIndexOf(data, split_arr);
split_arr = null;
dataTmp = null;
dataTmp = new byte[postion - 2];
System.arraycopy(data, 2, dataTmp, 0, dataTmp.length);
data = null;
data = dataTmp.clone();
System.out.println("datatmp |"+new String(data)+"|");
postion = arrayLastIndexOf(data, "\n".getBytes())-1;
dataTmp = null;
dataTmp = new byte[postion];
System.out.println("postion:"+postion + " datalength:"+ data.length +" tmplength:" + dataTmp.length);
System.arraycopy(data, 0, dataTmp, 0, dataTmp.length);
data = null;
System.out.println("data |"+new String(dataTmp)+"|");
String file_path = getFileName(filePath);
System.out.println("file_path:"+file_path);
if(null != file_path) {
if (writeFile(dataTmp, FILE_DIR + file_path)) {
this.file_Size = dataTmp.length;
this.file_Path = FILE_DIR + file_path;
result = "文件上传完毕";
} else {
result = "文件上传失败";
}
}else{
result = "文件名为空";
}
dataTmp = null;
} else {
result = "content 必须为 multipart/form-data";
}
} catch (UnsupportedEncodingException ex4) {
result = "UnsupportedEncodingException错误";
} catch (NullPointerException e) {
result = "NullPointerException错误";
} catch (IOException ex1) {
result = "IOException 错误 ";
}catch (Exception ex1) {
result = "Exception 错误 ";
}
return result;
}
public String getFilePath(){
return this.file_Path;
}
public int getFileSize(){
return this.file_Size;
}
public boolean writeFile(byte[] data, String path) {
File f = null;
FileOutputStream fos = null;
try {
f = new File(path);
f.createNewFile();
fos = new FileOutputStream(f);
fos.write(data, 0, data.length);
} catch (FileNotFoundException e) {
return false;
} catch (IOException e) {
return false;
} finally {
try {
fos.close();
} catch (IOException e) {
return false;
}
}
return true;
}
public String getFileName(String arg) {
String path = "";
if(arg.equals("\"\"")) {
return null;
}
if (arg.indexOf("\"") > -1)
path = arg.substring(arg.indexOf("\"") + 1, arg.lastIndexOf("\""));
else
path = arg;
System.out.println("file_path:"+arg);
path = path.substring(path.lastIndexOf("\\") + 1);
return path;
}
//判断两个byte数组的值是否相等
private boolean arrayEquals(byte[] src, byte[] value){
if(src == null || value == null)
return false;
if(src.length != value.length)
return false;
for(int i=0; i<src.length; i++) {
if(src[i] != value[i])
return false;
}
return true;
}
//找出value数组在src中的位置, 从前往后
private int arrayIndexOf(byte[] src, byte[] value){
if(src == null || value == null)
return -1;
if(src.length < value.length)
return -1;
int postion = -1;
for(int i=0; i<src.length - value.length; i++) {
postion = i;
byte[] tmp = new byte[value.length];
System.arraycopy(src, i, tmp, 0, tmp.length);
if(arrayEquals(tmp, value)) {
tmp = null;
return postion;
}else{
postion = -1;
tmp = null;
}
}
return postion;
}
//找出value数组在src中的位置
private int arrayLastIndexOf(byte[] src, byte[] value){
if(src == nu
没有合适的资源?快使用搜索试试~ 我知道了~
ibatis+spring+struts2
共158个文件
class:54个
java:54个
jsp:22个
5星 · 超过95%的资源 需积分: 3 61 下载量 194 浏览量
2009-01-14
08:44:19
上传
评论 1
收藏 106KB RAR 举报
温馨提示
整合ibatis+spring+struts2 整合ibatis+spring+struts2
资源推荐
资源详情
资源评论
收起资源包目录
ibatis+spring+struts2 (158个子文件)
uploadFile.class 8KB
ManagerAction.class 4KB
PageUtil.class 4KB
ManagerDao.class 4KB
StudentDao.class 3KB
SchoolDao.class 3KB
GradeDao.class 3KB
ClassDao.class 3KB
StudentAction.class 3KB
ManagerBo.class 3KB
Manager.class 3KB
ClassAction.class 3KB
Student.class 2KB
redtest.class 2KB
SchoolAction.class 2KB
Teacher.class 2KB
SystemManagerDao.class 2KB
StudentBo.class 2KB
SystemManagerBo.class 2KB
SchoolMasterBo.class 2KB
SchoolMasterDao.class 2KB
GradeAction.class 2KB
SchoolMaster.class 2KB
SchoolBo.class 2KB
TeacherDao.class 2KB
ClassBo.class 2KB
GradeBo.class 2KB
TeacherBo.class 2KB
UploadFilesAction.class 2KB
IuploadFiles.class 2KB
Grade.class 2KB
SystemManager.class 2KB
SendEmail.class 1KB
Class.class 1KB
email.class 1KB
School.class 1KB
test.class 880B
IstudentDao.class 719B
ImanagerDao.class 715B
IstudentBo.class 689B
IsystemManagerDao.class 679B
IschoolMasterDao.class 671B
ImanagerBo.class 653B
IsystemManagerBo.class 650B
IschoolDao.class 646B
IschoolBo.class 644B
IschoolMasterBo.class 639B
IteacherDao.class 606B
IteacherBo.class 606B
IgradeDao.class 605B
IclassBo.class 603B
IclassDao.class 590B
IgradeBo.class 585B
upload.class 271B
.classpath 548B
org.eclipse.wst.common.component 436B
uploadFile.java 10KB
PageUtil.java 4KB
ManagerAction.java 3KB
StudentDao.java 3KB
SchoolDao.java 2KB
GradeDao.java 2KB
ClassDao.java 2KB
SchoolMasterDao.java 2KB
SystemManagerDao.java 2KB
ManagerDao.java 2KB
upload.java 2KB
TeacherDao.java 2KB
UploadFilesAction.java 2KB
StudentAction.java 2KB
Manager.java 2KB
SystemManagerBo.java 2KB
SchoolMasterBo.java 2KB
StudentBo.java 2KB
Student.java 2KB
SchoolBo.java 2KB
ManagerBo.java 2KB
SchoolMaster.java 2KB
Teacher.java 2KB
redtest.java 2KB
ClassAction.java 2KB
SchoolAction.java 1KB
TeacherBo.java 1KB
GradeAction.java 1KB
IuploadFiles.java 1KB
GradeBo.java 1KB
ClassBo.java 1KB
SystemManager.java 1KB
Grade.java 1KB
email.java 976B
Class.java 791B
SendEmail.java 742B
School.java 721B
IsystemManagerDao.java 593B
IsystemManagerBo.java 589B
IschoolMasterDao.java 579B
IschoolMasterBo.java 575B
ImanagerBo.java 563B
IstudentBo.java 546B
IstudentDao.java 545B
共 158 条
- 1
- 2
资源评论
- 菜鸟2011-10-27很好,很适合初学者
woloveyu
- 粉丝: 2
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功