| |
| 一个完整的上传文件bean |
| |
发布者: 发布时间:2006-05-07 |
|
|
|
import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest;
public class transfer_multi { public String[] sourcefile = new String[255];//源文件名 public String objectpath = "c:/";//目标文件目录 public String[] suffix = new String[255];//文件后缀名 public String[] objectfilename = new String[255];//目标文件名 public ServletInputStream sis = null;//输入流 public String[] description = new String[255];//描述状态 public long size = 100*1024;//限制大小 private int count = 0;//已传输文件数目 private byte[] b = new byte[4096];//字节流存放数组 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;//标示已经传输的字节数 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(){ //可以在构建器里面构建服务器上传目录,也可以在javabean调用的时候自己构建 setObjectpath("/home/www/jspvhost4/web/popeyelin/images/"); } }
|
| (转载文章请保留出处:北天JAVA技术网(www.java114.com)) |
| |
| 更多精彩文章: |
| JSP语法详解 |
| 详细的jsp分页 |
| 想成为一个JSP网站程序员吗? |
| JSP语法简表 |
| 汉字问题深入谈 |
| 从汉化到国际化 |
| |
| 最近评论: |
|
|
| 你曾悄悄的来过! |
| wow gold,wow gold,wow gold,ffxi gil max(985) |
|
|
| 冰封的往事! |
| wow power leveling,wow gold,wow power leveling,wow gold
max(9364) |
|
|
| 冰封的往事! |
| wow power leveling,wow gold,wow power leveling,wow gold
max(5417) |
|
|
| 冰封的往事! |
| wow power leveling,wow gold,wow power leveling,wow gold
max(2376) |
|
|
| 冰封的往事! |
| wow power leveling,wow gold,wow power leveling,wow gold
max(6944) |
|
|
| 冰封的往事! |
| wow power leveling,wow gold,wow power leveling,wow gold
max(6040) |
|
|
| 冰封的往事! |
| wow power leveling,wow gold,wow power leveling,wow gold
max(3548) |
|
|
| 冰封的往事! |
| wow power leveling,wow gold,wow power leveling,wow gold
max(8727) |
|
|
| 冰封的往事! |
| wow power leveling,wow gold,WoW Gold,wow gold
max(1371) |
|
|
| 飞舞的传奇! |
| 传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(7780) |
|
|
| |
| 免责声明:该文章由网友发表,如果对您造成侵权,请联系站长。 |
|