文档中心 > API文档

1.10.5. 示例

package com.seeyon.apps.test.listener;
 
 import java.io.ByteArrayInputStream;
 
 import javax.servlet.http.HttpServletResponse;
 import com.seeyon.ctp.common.exceptions.BusinessException;
 import com.seeyon.ctp.common.filemanager.event.FileDownloadEvent;
 import com.seeyon.ctp.common.filemanager.event.FileItem;
 import com.seeyon.ctp.common.filemanager.event.FileUploadEvent;
 import com.seeyon.ctp.common.po.filemanager.V3XFile;
 import com.seeyon.ctp.util.annotation.ListenEvent;
 // <bean class="com.seeyon.apps.test.listener.FileEventListener"/>
 public class FileEventListener {
     // 附件上传监听示例:杀毒
     @ListenEvent(event = FileUploadEvent.class)
     public void onFileUpload(FileUploadEvent evt) throws Exception {
         FileItem fileItem = evt.getFileItem();
         String originalFilename = fileItem.getOriginalFilename();
         if (originalFilename.contains("有毒无法杀")) {
             // 文件有病毒,但杀毒失败,此时抛出异常,提示用户
             throw new BusinessException(originalFilename + "有病毒,无法清除");
         } else if (originalFilename.contains("有毒已杀")) {
             // 文件有病毒,杀毒成功,保存清除病毒后的文件,然后提示用户
             fileItem.setInputStream(new ByteArrayInputStream("virus clean"
                     .getBytes()));
             fileItem.appendMessage(originalFilename + "病毒已清除");
         }
     }
     // 附件下载监听示例:加密
     @ListenEvent(event = FileDownloadEvent.class)
     public void onFileDownload(FileDownloadEvent evt) throws Exception {
             V3XFile file = evt.getFile();
             if(file==null){
                 return;
             }
             // 筛选要处理的文件
             if("application/vnd.ms-excel".equals(file.getMimeType())){
                 HttpServletResponse response = evt.getResponse();
                 response.setContentType("application/vnd.ms-excel; charset=UTF-8");
                 response.setHeader("Content-disposition", "");
                 // 压缩或加密文件
                 evt.setInputStream(new ByteArrayInputStream("my file"
                         .getBytes()));
             }
             
     }    
 }