文件上传

  * MyEclipse Struts
 * Creation date: 07-06-2007
 *
 * XDoclet definition:
 * @struts.action validate="true"
 */
public class newsaddaction extends Action {
 /*
  * Generated Methods
  */

 /**
  * Method execute
  * @param mapping
  * @param form
  * @param request
  * @param response
  * @return ActionForward
  */
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
  // TODO Auto-generated method stub
  
  newsaddform newsform=(newsaddform)form;
  //file upload
   // UploadFileForm hff=(UploadFileForm)form; 
  ActionErrors errors=new ActionErrors();   
  try{
  FormFile file=(FormFile)newsform.getImg();
   
   
      //*************如果ActionForm中没验证则加上这段*****************
     // if(!(file==null || file.getFileSize()<10 || file.getFileName()==null)){
      // file not empty
   
            //*************取得上传文件的信息****************
      String dir=servlet.getServletContext().getRealPath("/logo");//获取应用下logo文件夹的绝对路径
      String fname=file.getFileName();
     // String size=Integer.toString(file.getFileSize())+"bytes";
      String url=dir+"//"+fname;//文件在tomcat目录下孙=的存放路径
   
      //*************限制非图片文件的上传*******************
      String fileType=(fname.substring(fname.lastIndexOf('.')+1)).toLowerCase();
      if((!fileType.equals("jpg")) && (!fileType.equals("bmp")) && (!fileType.equals("gif")) && (!fileType.equals("jpeg"))){
       errors.add("filetype",new ActionError("error.file.type"));
       saveErrors(request,errors);
       return (new ActionForward(mapping.getInput()));
      }
   
      //*************限制文件不能超过2M******************
      if(file.getFileSize()>2097152){
       errors.add("size",new ActionError("error.file.size"));
       saveErrors(request,errors);
       return (new ActionForward(mapping.getInput()));
      } 
    
      //*************要用到的输入输出流*****************
      InputStream streamIn=file.getInputStream();
      OutputStream streamOut=new FileOutputStream(url);
   
      //*************将文件输出到目标文件*****************
      int bytesRead=0;
      byte[] buffer=new byte[8192];
      while((bytesRead=streamIn.read(buffer,0,8192))!=-1){
       streamOut.write(buffer,0,bytesRead);
      }
   
      streamOut.close();
      streamIn.close();
      file.destroy();   
  }catch(Exception e){
   e.printStackTrace();
  }
   //   }//if(file is empty)
  
  New news=new New();
  int i=0;
  news.setImg("not");//fhfh
  news.setAuthor((String)newsform.getAuthor());
  news.setContent((String)newsform.getContent());
  news.setKeyword((String)newsform.getKeyword());
  news.setTitle((String)newsform.getTitle());
   Integer type=Integer.valueOf((String)newsform.getType());
  news.setType(type);
  DataSource ds=(DataSource)getDataSource(request,"mynews/data");
  Newmanager manager=new Newmanager(ds);
  i=manager.newsave(news);
  manager.close();
  if(i==1){
   return mapping.findForward("newsaddsuccess");
  }
  
  return mapping.findForward("newsadderrors");
  
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值