正文

简单的java  文件上传处理2006-07-25 16:14:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/ggbm/16820.html

分享到:

           由于以前一直是用的smartupload,自己写了个,写的不好,还请包涵:) /** *@discription 一个用于上传的类,可以用于任何类型的上传。 *@package com.tools.manage *@author  李国庆 *@company  LEEMENZ *@version  1.0.0 *  */package com.tools.manage; import java.io.DataInputStream;import java.io.EOFException;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.UnsupportedEncodingException; import javax.servlet.ServletConfig;import javax.servlet.ServletInputStream;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.jsp.PageContext; /** * @author Administrator * */public class Upload {  private ServletRequest request;  private ServletResponse response;  private ServletConfig config;  private ServletInputStream DATA;  private int FormSize;  private File file;  private FileOutputStream foutput;  private DataInputStream dinput;  private String filename;  private byte[] b;  private byte t;  private boolean flag = false;  public Upload() { }  /**  * @description            初始化上下文配置  * @param config           上下文配置  * @param request          HttpServletRequest  * @param response         HttpServletResponse  * @throws IOException     抛出IO异常  */ public void initialize(ServletConfig config, HttpServletRequest request,   HttpServletResponse response) throws IOException {  this.request = request;  this.config = config;  this.response = response;  this.DATA = request.getInputStream();  this.FormSize = request.getContentLength(); }  /**  * @description            初始化上下文  * @param pageContext      上下文文件  * @throws IOException     抛出IO异常  */ public void initialize(PageContext pageContext) throws IOException {  this.request = pageContext.getRequest();  this.response = pageContext.getResponse();  this.config = pageContext.getServletConfig();  this.DATA = request.getInputStream();  this.FormSize = request.getContentLength(); }  /**  * @description            设置文件名  * @param str              传入的文件名字符串  * @return                 返回boolean类型的值  */ public boolean setFileName(String str) {  try {   File file = new File(str);   foutput = new FileOutputStream(file);  } catch (IOException e) {   e.printStackTrace();   return false;  }  return true; }  /**  * @description   将读入的数据对象以字节的方式存放到内存中  *  */ public void getByte() {  int i = 1;  try {   dinput = new DataInputStream(DATA);   b = new byte[FormSize];   while (true) {    try {     t = dinput.readByte();     b[i] = t;     i++;    } catch (EOFException e) {     // TODO: handle exception     break;    }   }   dinput.close();  } catch (IOException e) {   // TODO: handle exception   e.printStackTrace();  } }  /**  * @description         以ISO8859-1标准保存文件  * @return              保存成功的标志  */ public boolean save() {  int start1 = 0, start2 = 0;  String temp = "";  if (!flag) {   getByte();   flag = true;  }  try {   temp = new String(b, "ISO8859-1");  } catch (UnsupportedEncodingException e) {   // TODO: handle exception   return false;  }  start1 = temp.indexOf("image/");  temp = temp.substring(start1);   start1 = temp.indexOf(" ");   temp = temp.substring(start1 + 4);  start2 = temp.indexOf(";       ");  if (start2 != -1) {   temp = temp.substring(0, start2);  }  try {   byte[] img = temp.getBytes("ISO8859-1");   for (int j = 0; j < img.length; j++) {    foutput.write(img[j]);   }   foutput.close();  } catch (IOException e) {   // TODO: handle exception   return false;  }  return true; }  /**  * @description        在物理存储上创建文件夹  * @param pathOld      存放物理位置  * @param pathNew      在相应的物理位置下要创建的文件夹名称或序列  * @return string      返回创建好的文件夹的物理位置绝对路径          */ public String MAKE_DIR(String pathOld, String pathNew) {  try {   if (!(new File(pathOld).isDirectory())) {    new File(pathOld);    new File(pathOld + "/" + pathNew).mkdirs();   } else {    new File(pathOld + "/" + pathNew).mkdirs();   }  } catch (SecurityException e) {   System.out.println("can not create directory");  }  return "/" + pathNew + "/"; } }

阅读(8522) | 评论(6)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册