* 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");
}
}