小弟写了一个不用useBean的上传文件的东东,大家看看啦~ 多提提意见

发表于:2007-07-01来源:作者:点击数: 标签:
只需要include 然后是用就行了,其他还有取文件名,取文件大小,取文件类型,上传改名,取mulitForm中其他字段的值的功能 :) 这是小弟用 Java 做的第一个可以用的东西 :P 大家帮忙看看~~ %!// 取得Multi Form中字段的值 in(FieldName, ServletInputStream) ou
只需要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;
}
%>

原文转自:http://www.ltesting.net