用JSP编写文件上传
作者:袁毅来源:www.chinaasp.com   如过你用VB编写文件上传的组件的话,那么用JAVA编写文件上传的JAVABEAN十分容易。
  下面的例子只是一个简版
  package yuanyifileup; 
  import java.io.*; 
  import java.util.*; 
  import javax.servlet.*; 
  import javax.servlet.http.*; 
  import javax.servlet.jsp.PageContext; 
  public class yuanyifileup 
  { 
  private ServletRequest request; 
  private ServletResponse response; 
  private ServletConfig config; 
  ServletInputStream DATA; 
  int FormSize; 
  File f1; 
  FileOutputStream os; 
  DataInputStream is; 
  String filename; 
  byte[] b; 
  byte t; 
  boolean flag=false; 
  public yuanyifileup() 
  { } 
  public void initialize(ServletConfig config,HttpServletRequest request,HttpServletResponse response) throws IOException 
  { 
  this.request=request; 
  this.response=response; 
  this.config=config; 
  DATA = request.getInputStream(); 
  FormSize=request.getContentLength(); 
  } 
  public void initialize(PageContext pageContext) throws IOException 
  { 
  request=pageContext.getRequest(); 
  response=pageContext.getResponse(); 
  config=pageContext.getServletConfig(); 
  DATA = request.getInputStream(); 
  FormSize=request.getContentLength(); 
  } 
  public boolean setFilename(String s) 
  { 
  try 
  { 
  File f1=new File(s); 
  os=new FileOutputStream(f1); 
  } 
  catch(IOException e) 
  {return(false);} 
  return(true); 
  } 
  public void getByte() 
  { 
  int i=0; 
  try 
  { 
  is=new DataInputStream(DATA); 
  b=new byte[FormSize]; 
  while (true) 
  { 
  try 
  { 
  t=is.readByte(); 
  b[i]=t; 
  i++; 
  } 
  catch(EOFException e) 
  { break;} 
  } 
  is.close();} 
  catch(IOException e) 
  {} 
  } 
  public boolean save() 
  { 
  int i=0,start1=0,start2=0; 
  String temp=""; 
  if (!flag) 
  { 
  getByte(); 
  flag=true; 
  } 
  try 
  { 
  temp=new String(b,"ISO8859_1"); 
  } 
  catch(UnsupportedEncodingException e) 
  {return(false);} 
  start1=temp.indexOf("image/"); 
  temp=temp.substring(start1); 
  start1=temp.indexOf("\r\n\r\n"); 
  temp=temp.substring(start1+4); 
  start2=temp.indexOf(";\r\n"); 
  if (start2!=-1) 
  { 
  temp=temp.substring(0,start2); 
  } 
  try 
  { 
  byte[] img=temp.getBytes("ISO8859_1"); 
  for (i=0;i { os.write(img[i]); } 
  os.close(); 
  } 
  catch(IOException e) 
  {return(false);} 
  return(true); 
  } 
  如果有不明白的发E-Mail:[email protected] 
  }