Index: forgon-core/src/main/java/com/forgon/filedownload/servlet/FileDownLoadServlet.java =================================================================== diff -u -r15795 -r17247 --- forgon-core/src/main/java/com/forgon/filedownload/servlet/FileDownLoadServlet.java (.../FileDownLoadServlet.java) (revision 15795) +++ forgon-core/src/main/java/com/forgon/filedownload/servlet/FileDownLoadServlet.java (.../FileDownLoadServlet.java) (revision 17247) @@ -1,5 +1,6 @@ package com.forgon.filedownload.servlet; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; @@ -13,11 +14,13 @@ import com.forgon.attachfile.enums.AttachFileType; import com.forgon.attachfile.model.AttachFile; import com.forgon.attachfile.service.AttachFileManager; +import com.forgon.tools.StrutsResponseUtils; import com.forgon.tools.util.FileUtils; import org.apache.commons.lang.StringUtils; import com.forgon.filedownload.service.FileDownLoadManager; import com.forgon.tools.SpringBeanManger; +import org.apache.log4j.Logger; /** * @author BYuan @@ -26,47 +29,57 @@ public class FileDownLoadServlet extends HttpServlet { private static final long serialVersionUID = 1L; + protected Logger logger = Logger.getLogger(this.getClass()); + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - - response.setCharacterEncoding("utf-8"); - request.setCharacterEncoding("utf-8"); - String loadType = request.getParameter("loadType"); - String id = request.getParameter("id"); - if(StringUtils.isEmpty(id)){ - notFindAttachFile(response); - return ; + try { + response.setCharacterEncoding("utf-8"); + request.setCharacterEncoding("utf-8"); + String loadType = request.getParameter("loadType"); + String id = request.getParameter("id"); + if(StringUtils.isEmpty(id)){ + notFindAttachFile(response); + return ; + } + FileDownLoadManager fileDownLoadManager = (FileDownLoadManager)SpringBeanManger.getBean("fileDownLoadManager"); + AttachFileManager attachFileManager = (AttachFileManager)SpringBeanManger.getBean("attachFileManager"); + if(StringUtils.equals(loadType, "word")){ + OutputStream out = response.getOutputStream(); + fileDownLoadManager.downLoadComoseFileWord(request.getParameter("objectName"),id, out); + } else if(StringUtils.equals(loadType, "open") || StringUtils.equals(loadType, "'open'")){ + AttachFileType attachFileType = attachFileManager.getAttachTypeById(id); + //如果是视频文件,直接播放 + if (AttachFileType.VIDEO.equals(attachFileType)){ + response.sendRedirect(this.getPlayVideoUrl(request, id)); + return; + } + directOpenAttachFile(response, id, fileDownLoadManager); + } else if(StringUtils.equals(loadType, "template")){ + OutputStream out = response.getOutputStream(); + fileDownLoadManager.downLoadTemplateFile(id, out); + } else if(StringUtils.equals(loadType, "inner")){ + downloadInnerFile(request, response, id, fileDownLoadManager); + } + else if (StringUtils.equals(loadType, "play")){ + response.sendRedirect(this.getPlayVideoUrl(request, id)); + } + else { + downloadAttachFile(response, id, fileDownLoadManager); + } } - - - FileDownLoadManager fileDownLoadManager = (FileDownLoadManager)SpringBeanManger.getBean("fileDownLoadManager"); - AttachFileManager attachFileManager = (AttachFileManager)SpringBeanManger.getBean("attachFileManager"); - - if(StringUtils.equals(loadType, "word")){ - OutputStream out = response.getOutputStream(); - fileDownLoadManager.downLoadComoseFileWord(request.getParameter("objectName"),id, out); - } else if(StringUtils.equals(loadType, "open") || StringUtils.equals(loadType, "'open'")){ - AttachFileType attachFileType = attachFileManager.getAttachTypeById(id); - //如果是视频文件,直接播放 - if (AttachFileType.VIDEO.equals(attachFileType)){ - response.sendRedirect(this.getPlayVideoUrl(request, id)); + catch (Exception e) { + logger.error(e, e); + if (e.getCause().getCause() instanceof FileNotFoundException){ + request.getSession().setAttribute("errorMsg","该文件无法找到"); + String url = request.getContextPath() + "/networkdisk/fileNotFind.mhtml"; + response.sendRedirect(url); return; } - directOpenAttachFile(response, id, fileDownLoadManager); - } else if(StringUtils.equals(loadType, "template")){ - OutputStream out = response.getOutputStream(); - fileDownLoadManager.downLoadTemplateFile(id, out); - } else if(StringUtils.equals(loadType, "inner")){ - downloadInnerFile(request, response, id, fileDownLoadManager); + throw new RuntimeException(e); } - else if (StringUtils.equals(loadType, "play")){ - response.sendRedirect(this.getPlayVideoUrl(request, id)); - } - else { - downloadAttachFile(response, id, fileDownLoadManager); - } } Index: forgon-knowledge/src/main/java/com/forgon/knowledge/controller/KnowledgeFileController.java =================================================================== diff -u -r15816 -r17247 --- forgon-knowledge/src/main/java/com/forgon/knowledge/controller/KnowledgeFileController.java (.../KnowledgeFileController.java) (revision 15816) +++ forgon-knowledge/src/main/java/com/forgon/knowledge/controller/KnowledgeFileController.java (.../KnowledgeFileController.java) (revision 17247) @@ -28,6 +28,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; import java.util.Date; import java.util.List; @@ -93,6 +94,19 @@ + @RequestMapping(value = "/networkdisk/fileNotFind.mhtml") + public String fileNotFind(ModelMap map, HttpServletRequest request){ + HttpSession session = request.getSession(); + Object errorMsg = session.getAttribute("errorMsg"); + if (errorMsg != null){ + session.removeAttribute("errorMsg"); + map.put("errorTip", "该文件无法找到!"); + } + return "/knowledge/knowledgeErrorPage"; + } + + + @RequestMapping(value = "/networkdisk/addFileForm.mhtml", method=RequestMethod.POST) public ModelAndView onSubmit(HttpServletRequest request, @ModelAttribute("AddFileForm")KnowledgeFile command) throws Exception { try { Index: ssts-web/src/main/webapp/knowledge/knowledgeErrorPage.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/knowledge/knowledgeErrorPage.jsp (revision 0) +++ ssts-web/src/main/webapp/knowledge/knowledgeErrorPage.jsp (revision 17247) @@ -0,0 +1,8 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + +${errorTip} + +