package com.upload; import Java.io.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.ServletInputStream; import javax.servlet.ServletException;" />
龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

一个文件上传JAVABEAN

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
?XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> package com.upload; import Java.io.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.ServletInputStream; import javax.servlet.ServletException;

<?XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> 


  package  com.upload;  
  
  import  Java.io.*;  
  import  javax.servlet.http.HttpServletRequest;  
  import  javax.servlet.ServletInputStream;  
  import  javax.servlet.ServletException;  
  
  public  class  upload{  
  private  static  String  newline  =  " ";  
  private  String  uploadDirectory  =  ".";  
  private  String  ContentType  =  "";  
  private  String  CharacterEncoding  =  "";  
  
  private  String  getFileName(String  s){  
  int  i  =  s.lastIndexOf("");  
  if(i  <  0  //  i  >=  s.length()  -  1){  
  i  =  s.lastIndexOf("/");  
  if(i  <  0  //  i  >=  s.length()  -  1)  
  return  s;  
  }  
  return  s.substring(i  +  1);  
  }  
  
  public  void  setUploadDirectory(String  s){  
  uploadDirectory  =  s;  
  }  
  
  public  void  setContentType(String  s){  
  ContentType  =  s;  
  int  j;  
  if((j  =  ContentType.indexOf("boundary="))  !=  -1){  
  ContentType  =  ContentType.substring(j  +  9);  
  ContentType  =  "--"  +  ContentType;  
  }  
  }  
  
  public  void  setCharacterEncoding(String  s){  
  CharacterEncoding  =  s;  
  }  
  
  public  void  uploadFile(  HttpServletRequest  req)  throws  ServletException,  IOException{  
  setCharacterEncoding(req.getCharacterEncoding());  
  setContentType(req.getContentType());  
  uploadFile(req.getInputStream());  
  }  
  
  public  void  uploadFile(  ServletInputStream  servletinputstream)  throws  ServletException,  IOException{  
  
  String  s5  =  null;  
  String  filename  =  null;  
  byte  Linebyte[]  =  new  byte[4096];  
  byte  outLinebyte[]  =  new  byte[4096];  
  int  ai[]  =  new  int[1];  
  int  ai1[]  =  new  int[1];  
  
  String  line;  
  //得到文件名  
  while((line  =  readLine(Linebyte,  ai,  servletinputstream,  CharacterEncoding))  !=  null){  
  int  i  =  line.indexOf("filename=");  
  if(i  >=  0){  
  line  =  line.substring(i  +  10);  
  if((i  =  line.indexOf("""))  >  0)  
  line  =  line.substring(0,  i);  
  break;  
  }  
  }  
  
  filename  =  line;  
  
  if(filename  !=  null  &&  !filename.equals(""")){  
  filename  =  getFileName(filename);  
  
  String  sContentType  =  readLine(Linebyte,  ai,  servletinputstream,  CharacterEncoding);  
  if(sContentType.indexOf("Content-Type")  >=  0)  
  readLine(Linebyte,  ai,  servletinputstream,  CharacterEncoding);  
  
  //File(String  parent,  String  child)  
  //Creates  a  new  File  instance  from  a  parent  pathname  string  
  //and  a  child  pathname  string.  
  File  file  =  new  File(uploadDirectory,  filename);  
  
  //FileOutputStream(File  file)  
  //Creates  a  file  output  stream  to  write  to  the  file  represented  
  //by  the  specified  File  object.  
  FileOutputStream  fileoutputstream  =  new  FileOutputStream(file);  
  
  while((sContentType  =  readLine(Linebyte,  ai,  servletinputstream,  CharacterEncoding))  !=  null){  
  if(sContentType.indexOf(ContentType)  ==  0  &&  Linebyte[0]  ==  45)  
  break;  
  
  if(s5  !=  null){  
  //write(byte[]  b,  int  off,  int  len)  
  //Writes  len  bytes  from  the  specified  byte  array  starting  
  //at  offset  off  to  this  file  output  stream.  
  fileoutputstream.write(outLinebyte,  0,  ai1[0]);  
  fileoutputstream.flush();  
  }  
  s5  =  readLine(outLinebyte,  ai1,  servletinputstream,  CharacterEncoding);  
  if(s5  ==  null  //  s5.indexOf(ContentType)  ==  0  &&  outLinebyte[0]  ==  45)  
  break;  
  fileoutputstream.write(Linebyte,  0,  ai[0]);  
  fileoutputstream.flush();  
  }  
  
  byte  byte0;  
  if(newline.length()  ==  1)  
  byte0  =  2;  
  else  
  byte0  =  1;  
  if(s5  !=  null  &&  outLinebyte[0]  !=  45  &&  ai1[0]  >  newline.length()  *  byte0)  
  fileoutputstream.write(outLinebyte,  0,  ai1[0]  -  newline.length()  *  byte0);  
  if(sContentType  !=  null  &&  Linebyte[0]  !=  45  &&  ai[0]  >  newline.length()  *  byte0)  
  fileoutputstream.write(Linebyte,  0,  ai[0]  -  newline.length()  *  byte0);  
  
  fileoutputstream.close();  
  }  
  }  
  
  private  String  readLine(byte  Linebyte[],  int  ai[],  
  ServletInputStream  servletinputstream,  
  String  CharacterEncoding){  


  
精彩图集

赞助商链接