package cn.howso.deeplan.son.feeder.controller.common; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.apache.ibatis.annotations.Param; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import cn.howso.deeplan.son.feeder.service.fightgisservice.FightGisService; import cn.howso.framework.utils.Constants; import cn.howso.framework.utils.TemplateDownLoadUtils; @Controller @RequestMapping("common") public class CommonController { @Value("#{prop['projectImgSrc']}") private String projectImgSrc; @Value("#{prop['exportExcel']}") private String exportExcel; //虚拟路侧截屏图片路经 @Value("#{prop['projectPrintScreen']}") private String projectPrintScreen; /* 日志 */ private static Logger logger = LoggerFactory.getLogger(CommonController.class); // private final String filePath = "H:/kk/"; // private final String filePath = "/home/deeplan/algorithm_file/20180402/"; // private final String filePath = projectImgSrc;不能直接赋值,直接用projectImgSrc即可 /** * 加载远程图片 <功能详细描述> * * @param imgPath * @param type * @return * @see [类、类#方法、类#成员] */ @RequestMapping("/loadImgFile") public ModelAndView loadImgFile(String imgPath) { // type=0图片文件 Integer type = 0; Map model = new HashMap(); model.put("path", projectImgSrc + imgPath); model.put("type", type); return new ModelAndView("load_file", model); } /** * 加载远程图片 <虚拟路测图片> * * @param imgPath * @param type * @return * @see [类、类#方法、类#成员] */ // @RequestMapping("/loadScreenImg") // public ModelAndView loadScreenImg(String imgPath) { // // type=0图片文件 // Integer type = 0; // // Map model = new HashMap(); // model.put("path", "/Users/shenrongrong/Desktop/" + imgPath); // model.put("type", type); // // return new ModelAndView("load_file", model); // } /** * 加载远程图片 <虚拟路测图片> * * @param imgPath * @param type * @return * @see [类、类#方法、类#成员] */ @RequestMapping("/loadSImg") public ModelAndView loadSImg(String imgPath) { // type=0图片文件 Integer type = 0; Map model = new HashMap(); model.put("path", imgPath); model.put("type", type); return new ModelAndView("load_file", model); } }
<%@page import="java.io.*"%> <% Object paramPath = request.getAttribute("path"); Object paramType = request.getAttribute("type"); String path = String.valueOf(paramPath); String type = String.valueOf(paramType); System.out.println(paramPath); if (path != null && !"".equals(path.trim()) && type != null) { // 如果是图片 if ("0".equals(type)) { response.setContentType("image/jpeg"); } // 如果是音频 else if ("1".equals(type)) { response.setContentType("audio/mp3"); } // 如果是视频 else if ("2".equals(type)) { response.setContentType("video/x-msvideo"); } //excel文件 else if ("3".equals(type)) { response.setContentType("application/vnd.ms-excel"); } /* path = path.toLowerCase(); */ String pathSuffix = path.toLowerCase(); /*start 限制文件路径 2016年4月23日10:44:54 */ if (!pathSuffix.contains("../") && !pathSuffix.contains(" ") && !pathSuffix.contains("%00")) { if (pathSuffix.endsWith(".png") || pathSuffix.endsWith(".jpg") || pathSuffix.endsWith(".ico") || pathSuffix.endsWith(".cebx") || pathSuffix.endsWith(".bmp") || pathSuffix.endsWith(".xls") || pathSuffix.endsWith(".xlsx")) { /*end 限制文件路径 2016年4月23日10:44:54 */ FileInputStream inputStream = null; ServletOutputStream outputStream = null; try { inputStream = new FileInputStream(new File(path)); outputStream = response.getOutputStream(); byte[] buff = new byte[1024 * 4]; for (int length = inputStream.read(buff); length != -1; length = inputStream.read(buff)) { outputStream.write(buff, 0, length); } outputStream.flush(); } catch (Exception e) { System.out.println("e1"); e.printStackTrace(); } finally { out.clear(); out = pageContext.pushBody(); try { if (null != inputStream) { inputStream.close(); } } catch (Exception ee) { System.out.println("e2"); ee.printStackTrace(); } finally { try { if (null != outputStream) { outputStream.close(); } } catch (Exception e) { System.out.println("e3"); e.printStackTrace(); } } } } } } %>