struts1.2实现文件上传代码

import org.apache.struts.upload.FormFile;

action 方法

 public String saveFile(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception{
  FileManagerActionForm fileForm= (FileManagerActionForm)form;
  FormFile file = fileForm.getFiles();
  int len = file.getFileSize();
  if(file.getFileSize()>10480000)//文件附件大小不超10兆
  {
   throw new AppException().setMessageKey("errors.superFileSize");
   
  }
  getServiceFacade().getFileManager().doAddFile(fileForm.getCateId(), file.getFileName(), file.getFileSize(), file.getFileData());
  request.setAttribute("flag","add");
  return "cateAddFile";
 } 

 

action 里调用的 service 方法:

public void doAddFile(Long typeId, String fileName, int size, byte[] data) {
  TCmsFilecate cate = (TCmsFilecate) fileManagerDao.findById(
    TCmsFilecate.class, typeId);
  TCmsFile file = new TCmsFile();
  file.setTCmsFilecate(cate);
  file.setDate(new Date());
  file.setName(fileName);
  file.setSize(new Integer(size));
  file.setContext(data);
  fileManagerDao.save(file);
 }

 

文件另存:


 public String getFileDetail(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception
 {
  try{
  FileManagerActionForm fileForm= (FileManagerActionForm)form;
  Long fielId=new Long(request.getParameter("fileId"));
  TCmsFile file = new TCmsFile();
  file= getServiceFacade().getFileManager().findById(fielId);
  request.setAttribute("context",file.getContext());

  request.setAttribute("name",file.getName());
  }
  
   catch(Exception e)
   {
    throw new AppException().setMessageKey("errors.nothing").setMessageArgs(new String[]{"该文件已被删除!"});
   }

  return "loadLoading";
 }

 

页面

<body>
<%
 response.reset();
 byte[] context = (byte[])request.getAttribute("context");
 String fileName = (String)request.getAttribute("name");
 response.setContentType("application/x-download;charset=GBK");
 response.setHeader("Content-Disposition","attachment;filename=" + new String(fileName.getBytes("GBK"), "iso-8859-1"));
 OutputStream os = response.getOutputStream();
 os.write(context);
 os.flush();
 os.close();
 os = null;
 out.clear();
 out = pageContext.pushBody();
 
 %>
</body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值