細(xì)心!用心!耐心!

          吾非文人,乃市井一俗人也,讀百卷書,跨江河千里,故申城一游; 一兩滴辛酸,三四年學(xué)業(yè),五六點(diǎn)粗墨,七八筆買賣,九十道人情。

          BlogJava 聯(lián)系 聚合 管理
            1 Posts :: 196 Stories :: 10 Comments :: 0 Trackbacks

          一個完整的上傳文件bean

           

          import java.io.*;
          import javax.servlet.ServletInputStream;
          import javax.servlet.http.HttpServletRequest;

          public class transfer_multi {
          public String[] sourcefile = new String[255];//源文件名
          public String objectpath = "c:/";//目標(biāo)文件目錄
          public String[] suffix = new String[255];//文件后綴名
          public String[] objectfilename = new String[255];//目標(biāo)文件名
          public ServletInputStream sis = null;//輸入流
          public String[] description = new String[255];//描述狀態(tài)
          public long size = 100*1024;//限制大小
          private int count = 0;//已傳輸文件數(shù)目
          private byte[] b = new byte[4096];//字節(jié)流存放數(shù)組
          private boolean successful = true;

          public void setSourcefile(HttpServletRequest request) throws java.io.IOException{
          sis = request.getInputStream();
          int a = 0;
          int k = 0;
          String s = "";
          while((a = sis.readLine(b,0,b.length)) != -1){
          s = new String(b,0,a);
          if((k = s.indexOf("filename=")) != -1){
          s = s.substring(k+10);
          k = s.indexOf(""");
          s = s.substring(0,k);
          sourcefile[count] = s;

          k = s.lastIndexOf(".");
          suffix[count] = s.substring(k+1);
          System.out.println(suffix[count]);
          if(canTransfer(count)) transferfile(count);
          }
          if(!successful) break;
          }
          }
          public int getCount(){
          return count;
          }
          public String[] getSourcefile(){
          return sourcefile;
          }

          public void setObjectpath(String objectpath){
          this.objectpath = objectpath;
          }
          public String getObjectpath(){
          return objectpath;
          }
          private boolean canTransfer(int i){
          suffix[i] = suffix[i].toLowerCase();
          //這個是我用來傳圖片的,各位可以把后綴名改掉或者不要這個條件
          if(sourcefile[i].equals("")||(!suffix[i].equals("gif")&&!suffix[i].equals("jpg")&&!suffix[i].equals("jpeg"))) {description[i]="ERR suffix is wrong";return false;}
          else return true;
          }
          private void transferfile(int i){
          String x = Long.toString(new java.util.Date().getTime());
          try{
          objectfilename[i] = x+"."+suffix[i];
          FileOutputStream out = new FileOutputStream(objectpath+objectfilename[i]);
          int a = 0;
          int k = 0;
          long hastransfered = 0;//標(biāo)示已經(jīng)傳輸?shù)淖止?jié)數(shù)
          String s = "";
          while((a = sis.readLine(b,0,b.length)) != -1){
          s = new String(b,0,a);
          if((k = s.indexOf("Content-Type:")) != -1) break;
          }
          sis.readLine(b,0,b.length);
          while((a = sis.readLine(b,0,b.length)) != -1){
          s = new String(b,0,a);
          if((b[0]==45)&&(b[1]==45)&&(b[2]==45)&&(b[3]==45)&&(b[4]==45)) break;
          out.write(b,0,a);
          hastransfered+=a;
          if(hastransfered>=size){
          description[count] = "ERR The file "+sourcefile[count]+" is too large to transfer. The whole process is interrupted.";
          successful = false;
          break;
          }
          }
          if(successful) description[count] = "Right The file "+sourcefile[count]+" has been transfered successfully.";
          ++count;
          out.close();
          if(!successful){
          sis.close();
          File tmp = new File(objectpath+objectfilename[count-1]);
          tmp.delete();
          }
          }
          catch(IOException ioe){
          description[i]=ioe.toString();
          }

          }

          public transfer_multi(){
          //可以在構(gòu)建器里面構(gòu)建服務(wù)器上傳目錄,也可以在javabean調(diào)用的時候自己構(gòu)建
          setObjectpath("/home/www/jspvhost4/web/popeyelin/images/");
          }
          }

          posted on 2007-05-06 12:58 張金鵬 閱讀(82) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 新化县| 三台县| 宁武县| 长岭县| 建德市| 曲松县| 张家川| 东乡族自治县| 徐闻县| 当阳市| 永丰县| 钟山县| 延寿县| 台北县| 泰和县| 科技| 义马市| 秦皇岛市| 吐鲁番市| 惠州市| 黎平县| 和林格尔县| 平昌县| 武山县| 宁乡县| 汕尾市| 九龙坡区| 大港区| 长丰县| 宜城市| 咸丰县| 东乡族自治县| 丹巴县| 社旗县| 高密市| 乌兰浩特市| 武义县| 东乡族自治县| 高雄县| 龙陵县| 饶河县|