文件上传

来源:互联网 发布:java 类可以带参数吗 编辑:程序博客网 时间:2024/05/17 23:13

package com.zte.matermanage.action;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.MappingDispatchAction;
import org.apache.struts.upload.FormFile;

import com.zte.matermanage.common.Constant;
import com.zte.matermanage.form.UploadForm;

/**
 *
 * @author xiaoyong
 *
 */
public class UploadAction extends MappingDispatchAction
{
 
 /**
  * 用于记录错误日志
  */
 private Logger log = Logger.getLogger(UploadAction.class);
 
  public ActionForward execUpload(ActionMapping mapping,
             ActionForm form,
             HttpServletRequest request,
             HttpServletResponse response)
  {
   UploadForm upload = (UploadForm)form ;
  //上传
   FormFile file = upload.getFile();
   String fileName = Constant.FILE_PATH + file.getFileName();

   InputStream streamIn = null; //输入输出流
   OutputStream streamOut = null;
   try {
    File f = new File(Constant.FILE_PATH);
    if(!f.exists())
    {
     f.mkdir();
    }
    streamIn = file.getInputStream();
    streamOut = new FileOutputStream(fileName);
    int bytesRead = 0;
    byte[] buffer = new byte[2048];
    while ( (bytesRead = streamIn.read(buffer, 0, 2048)) != -1)
    {
     streamOut.write(buffer, 0, bytesRead);
    }
     streamOut.close();
     streamIn.close();
     request.setAttribute("uploadResult", "上传成功");

    }
    catch (FileNotFoundException e)
    {
     log.error(e) ;
     request.setAttribute("uploadResult", "上传失败");
     return mapping.findForward("uploadResult");
    }
    catch (IOException e)
    {
     log.error(e) ;
     request.setAttribute("uploadResult", "上传失败");
     return mapping.findForward("uploadResult");
    }
   return mapping.findForward("uploadResult");
  }
}