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;
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()));
}
}
}