只需要include 然后是用就行了,其他还有取文件名,取文件大小,取文件类型,上传改名,取mulitform中其他字段的值的功能 🙂
这是小弟用java做的第一个可以用的东西 :p 大家帮忙看看~~
<%!// 取得multi form中字段的值 in(fieldname, servletinputstream) out(string fieldvalue)
public string getmultifields(string fieldname,servletinputstream sis) throws java.io.ioexception{
byte[] b = new byte[4096];
string s = "";
string fieldvalue="";
int a=0;
while((a = sis.readline(b,0,b.length)) != -1){
s = new string(b,0,a);
if(s.indexof("content-disposition: form-data; name=\""+fieldname+"\"")!=-1){
a = sis.readline(b,0,b.length);
s = new string(b,0,a);
whiles:
while(1==1){
a = sis.readline(b,0,b.length);
s = new string(b,0,a);
if(s.indexof("—————————–")!=-1){
break whiles;
}else{
fieldvalue=fieldvalue+s;
}
}
}
}
sis.close();
return fieldvalue;
}
%>
<%!// 取得上传文件的文件名 in(fieldname, servletinputstream) out(string filename)
public string getfilename(string fieldname,servletinputstream sis) throws java.io.ioexception{
string filenames="";
string s="";
byte[] b = new byte[4096];
int tempa;
int tempb;
int a=0;
while((a = sis.readline(b,0,b.length)) != -1){
s=new string(b,0,a);
if(s.indexof("content-disposition: form-data; name=\""+fieldname+"\"")!=-1){
if(s.indexof("filename=") != -1){
tempa=s.indexof("filename=\"");
tempa+=10;
tempb=s.indexof("\"",tempa);
filenames=s.substring(tempa,tempb);
tempa=filenames.lastindexof("\\");
filenames=filenames.substring(tempa+1,filenames.length()).trim();
}
}
}
sis.close();
return filenames;
}
%>
<%!// 取得上传文件的文件类型 in(fieldname, servletinputstream) out(string filetype)
public string getfiletype(string fieldname,servletinputstream sis) throws java.io.ioexception{
string filetype="";
string s="";
byte[] b = new byte[4096];
int tempa;
int tempb;
int a=0;
while((a = sis.readline(b,0,b.length)) != -1){
s=new string(b,0,a);
if(s.indexof("content-disposition: form-data; name=\""+fieldname+"\"")!=-1){
if(s.indexof("filename=") != -1){
a = sis.readline(b,0,b.length);
s=new string(b,0,a);
tempa=s.indexof("content-type: ");
tempa+=14;
filetype=s.substring(tempa,s.length()).trim();
}
}
}
sis.close();
return filetype;
}
%>
<%!// 取得文件大小 in(fieldname, servletinputstream) out(int filesize)
public int getfilesize(string fieldname,servletinputstream sis) throws java.io.ioexception{
int filesize=0;
string s="";
byte[] b = new byte[4096];
int tempa;
int tempb;
int a=0;
while((a = sis.readline(b,0,b.length)) != -1){
s=new string(b,0,a);
if(s.indexof("content-disposition: form-data; name=\""+fieldname+"\"")!=-1){
if(s.indexof("filename=") != -1){
a = sis.readline(b,0,b.length);
a = sis.readline(b,0,b.length);
countsize:
while(1==1){
a = sis.readline(b,0,b.length);
s = new string(b,0,a);
if(s.indexof("—————————–")!=-1){
break countsize;
}else{
filesize=filesize+a;
}
}
}
}
}
sis.close();
return filesize;
}
%>
<%!// 上传文件 in(保存的绝对路径, 改名文件前缀名 *为空不改名, fieldname, servletinputstream) out(string 上传后的filename)
public string savefile(string savepath,string filename,string fieldname,servletinputstream sis) throws java.io.ioexception{
string filenames="";
string s="";
byte[] b = new byte[4096];
int tempa;
int tempb;
int a=0;
while((a = sis.readline(b,0,b.length)) != -1){
s=new string(b,0,a);
if(s.indexof("content-disposition: form-data; name=\""+fieldname+"\"")!=-1){
if(s.indexof("filename=") != -1){
tempa=s.indexof("filename=\"");
tempa+=10;
tempb=s.indexof("\"",tempa);
filenames=s.substring(tempa,tempb);
tempa=filenames.lastindexof(".");
if(filename==""||filename==null){
tempb=filenames.lastindexof("\\");
filenames=filenames.substring(tempb+1,tempa).trim()+filenames.substring(tempa,filenames.length()).trim();
}else{
filenames=filename+filenames.substring(tempa,filenames.length()).trim();
}
a = sis.readline(b,0,b.length);
a = sis.readline(b,0,b.length);
fileoutputstream fos = new fileoutputstream(savepath+filenames);
savedata:
while(1==1){
a = sis.readline(b,0,b.length);
s = new string(b,0,a);
if(s.indexof("—————————–")!=-1){
break savedata;
}else{
fos.write(b,0,a);
}
}
fos.close();
}
}
}
sis.close();
return filenames;
}
%>
