UpdataImage.java
上传用户:kzxteda
上传日期:2007-06-01
资源大小:54k
文件大小:4k
源码类别:

家庭/个人应用

开发平台:

Java

  1. /////////////////////////////////////
  2. //
  3. //  文章发布系统上传文件方法
  4. //  UpdataImage()
  5. //
  6. //  createFileName()用于文件的存储,并确认
  7. //  doSave()用于确认文件的存储
  8. //  setPath()用于设置路径
  9. //  所有的参数都有自己的set() get() 方法
  10. //
  11. /////////////////////////////////////
  12. import java.io.*;
  13. import java.util.*;
  14. import javax.servlet.*;
  15. import javax.servlet.http.*;
  16. import javax.servlet.jsp.*;
  17. public class UpdataImage {
  18.   private ServletRequest request;
  19.   private ServletResponse response;
  20.   private ServletConfig config;
  21.   private ServletInputStream DATA;
  22.   int formSize;
  23.   File f1;
  24.   FileOutputStream outS;
  25.   DataInputStream is;
  26.   String filename;
  27.   String firstName;
  28.   String path;
  29.   byte[] b;
  30.   byte t;
  31.   boolean flag = false;
  32.   public UpdataImage() {
  33.   }
  34.   public void initParam(PageContext context) throws IOException {
  35.     request = context.getRequest();
  36.     response = context.getResponse();
  37.     config = context.getServletConfig();
  38.     DATA = request.getInputStream();
  39.     formSize = request.getContentLength();
  40.   }
  41.   /*
  42.   public boolean setFileName(String s) {
  43.     try {
  44.       File f1 = new File(s);
  45.       outS = new FileOutputStream(f1);
  46.     }
  47.     catch(IOException e) {
  48.       return false;
  49.     }
  50.     return true;
  51.   }
  52.   */
  53.   private void getByte()
  54.   {
  55.     int i=0;
  56.     try
  57.     {
  58.       is=new DataInputStream(DATA);
  59.       b=new byte[formSize];
  60.       while (true)
  61.       {
  62.         try
  63.         {
  64.           t=is.readByte();
  65.           b[i]=t;
  66.           i++;
  67.         }
  68.         catch(EOFException e)
  69.         {
  70.           break;
  71.         }
  72.       }
  73.       is.close();
  74.     }
  75.     catch(IOException e)
  76.     {}
  77.   }
  78.   private boolean createFileName(String firstName,String lastName) {
  79.     try {
  80.       File f1 = new File(path,firstName + lastName);
  81.       if(f1.exists()){}else{
  82.       outS = new FileOutputStream(f1);}
  83.     }
  84.     catch(Exception e) {
  85.       return false;
  86.     }
  87.     return true;
  88.   }
  89.   public boolean doSave()
  90.   {
  91.     int i=0,start1=0,start2=0;
  92.     String temp="";
  93.     if (!flag)
  94.     {
  95.       getByte();
  96.       flag=true;
  97.     }
  98.     try
  99.     {
  100.       temp=new String(b, "ISO8859_1");
  101.       int filint, typeint;
  102.       filint = temp.indexOf("filename=");
  103.       typeint = temp.indexOf("Content-Type:");
  104.       System.out.println(filint);
  105.       String fnl = temp.substring(filint, typeint);
  106.       firstName = fnl.substring(fnl.lastIndexOf("\"), fnl.lastIndexOf("."));
  107.       String lastName = fnl.substring(fnl.lastIndexOf("."), fnl.lastIndexOf("""));
  108.       System.out.println(firstName+lastName);
  109.       createFileName(firstName,lastName);
  110.       temp = (temp.substring(temp.indexOf("rnrn"), temp.length()));
  111.       temp = temp.substring(4, temp.lastIndexOf("-----------------------------"));
  112.       temp = temp.substring(0, temp.lastIndexOf("-----------------------------")-2);
  113.     }
  114.     catch(Exception e)
  115.     {  return(false);}
  116.     try {
  117.       byte[] newbyte = temp.getBytes("ISO8859_1");
  118.       for(i = 0; i < newbyte.length; i++) {
  119.         outS.write(newbyte[i]);
  120.       }
  121.       outS.close();
  122.     }
  123.     catch(Exception e) {
  124.       return false;
  125.     }
  126.     /*
  127.     start1=temp.indexOf("image/");
  128.     temp=temp.substring(start1);
  129.     start1=temp.indexOf("rnrn");
  130.     temp=temp.substring(start1+4);
  131.     start2=temp.indexOf(";rn");
  132.     if (start2!=-1)
  133.     {
  134.       temp=temp.substring(0,start2);
  135.     }
  136.     try
  137.     {
  138.       byte[] img=temp.getBytes("ISO8859_1");
  139.       for (i=0;i<img.length;i++)
  140.              { outS.write(img[i]); }
  141.       outS.close();
  142.     }
  143.     catch(IOException e)
  144.         {return(false);}
  145.     */
  146.     return(true);
  147.   }
  148.   public String getFilename() {
  149.     return filename;
  150.   }
  151.   public void setFilename(String filename) {
  152.     this.filename = filename;
  153.   }
  154.   public String getFirstName() {
  155.     return firstName;
  156.   }
  157.   public void setFirstName(String firstName) {
  158.     this.firstName = firstName;
  159.   }
  160.   public String getPath() {
  161.     return path;
  162.   }
  163.   public void setPath(String path) {
  164.     this.path = path;
  165.   }
  166. }