实现了删除上传文件的ServiceBean和对应的Action

//UploadFileServiceBean 提供一个查找到要删除文件列表的函数

package com.itcast.service.product.impl;

import java.util.LinkedHashMap;
import java.util.List;

import javax.persistence.Query;

import org.springframework.stereotype.Service;

import com.itcast.service.base.DaoSupport;
import com.itcast.service.product.UploadFileService;
import com.itcast.util.QueryResult;
@Service
public class UploadFileServiceBean extends DaoSupport implements
  UploadFileService {

 public List<String> getSelectedFilePath(Integer[] ids) {
  StringBuffer jpql = new StringBuffer();
  for(int i =0;i<ids.length;i++){
   //jpql is:?1,?2,?3,?4,
   jpql.append("?").append(i+1).append(",");
  }
  jpql.deleteCharAt(jpql.length()-1);
  String sql = "select o.filePath from UploadFile o where o.id in("+jpql.toString()+")";
  Query query = em.createQuery(sql);
  for(int i = 0;i<ids.length;i++){
   query.setParameter((i+1), ids[i]);
  }
  System.out.println("-------------------in UploadFileServiceBean :jpql.toString() is:" + jpql.toString());
  System.out.println("-------------------in UploadFileServiceBean :sql is:" + sql);
  return query.getResultList();
 }

 

}

 

//UploadFileManageAction 实现了添加上传文件和删除上传文件的方法

 

package com.itcast.web.action.product;

import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.UUID;

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

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.springframework.stereotype.Controller;

import com.itcast.bean.product.UploadFile;
import com.itcast.service.product.UploadFileService;
import com.itcast.util.SetUrl;
import com.itcast.web.formbean.product.UploadFileForm;
@Controller("/control/uploadfile/manage")
public class UploadFileManageAction extends DispatchAction {
 @Resource(name="uploadFileServiceBean")
 private UploadFileService uploadFileService;
 
 public ActionForward addUI(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  // TODO Auto-generated method stub
  return mapping.findForward("addUI");
 }
 
 public ActionForward add(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  UploadFileForm formBean = (UploadFileForm)form;
  UploadFile upoadfile = new UploadFile();
  
  if(!formBean.validateUploadFile(formBean.getUploadfile())){
   request.setAttribute("message", "为了保证服务器安全,只允许上传只允许上传图片/flash动画/word文件/exe文件/pdf文件/TxT文件/xls文件/ppt文件");
   request.setAttribute("urladdress", SetUrl.getUrlAddress("control.uploadfile.list"));
   return mapping.findForward("message");
  }
  if(formBean.getUploadfile()!= null && formBean.getUploadfile().getFileSize()>0){
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/HH");
   String uploadfilepathdir = "/uploadfile/" + sdf.format(new Date());//构建图片保存的目录
   //得到图片保存目录的真实路径
   String uploadfilesavedir = request.getSession().getServletContext().getRealPath(uploadfilepathdir);
//   System.out.println("-----------------------in BrandManageAction logorealpathdir is:" + logorealpathdir);
//   System.out.println("-----------------------in BrandManageAction logopathdir is:" + logopathdir);
   //创建文件目录
   File uploadsavedir = new File(uploadfilesavedir);
   //如果目录不存在就创建
   if(!uploadsavedir.exists()){
    uploadsavedir.mkdirs();
   }
   //得到上传文件的名字
   String fileName = formBean.getUploadfile().getFileName();
   //得到上传文件的扩展名,如.gif,.jpg
   String ext = fileName.substring(fileName.lastIndexOf("."));
   //构建文件保存时候的文件名
   String uploadfileName = UUID.randomUUID().toString() + ext;
   try {
    FileOutputStream fops = new FileOutputStream(new File(
      uploadsavedir, uploadfileName));
    //将上传的文件信息保存到相应的文件目录里
    fops.write(formBean.getUploadfile().getFileData());
    fops.close();
   } catch (Exception e) {
    // TODO: handle exception
   }
   String uploadfilepath = "/baba1.1" +uploadfilepathdir + "/" + uploadfileName;
   upoadfile.setFilePath(uploadfilepath);
  }
  uploadFileService.save(upoadfile);
  request.setAttribute("message", "上传文件成功");
  request.setAttribute("urladdress", SetUrl.getUrlAddress("control.uploadfile.list"));
  return mapping.findForward("message");
 }
 
 public ActionForward delete(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  UploadFileForm formBean = (UploadFileForm)form;
  Integer[] ids = formBean.getDelIds();
  
  /**
   * 删除服务器相应目录下的上传文件
   */
  
  List<String> filePaths = uploadFileService.getSelectedFilePath(ids);
  if(filePaths != null){
   for(String filePath:filePaths){
    System.out.println("----------filePath is:--------------" + filePath);
    String deleteFileRealPath = request.getSession().getServletContext().getRealPath(filePath);
    //创建文件目录
    File deleteFiledir = new File(deleteFileRealPath);
    //如果目录不存在就创建
    if(deleteFiledir.exists()){
     deleteFiledir.delete();
    }
    
   }
  }
  
  /**
   * 删除数据库里的上传文件信息
   */
  
  uploadFileService.delete(UploadFile.class, ids);
  
  request.setAttribute("message", "删除上传文件成功");
  request.setAttribute("urladdress", SetUrl.getUrlAddress("control.uploadfile.list"));
  return mapping.findForward("message");
 }
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值