zoukankan      html  css  js  c++  java
  • 上传下载文件, 同时部署在webapps下, 而不是项目下,防止重新部署tomcat, 上传文件消失

    前端上传

    <a href='javascript:upload("+data[i].id+")' title='Upload Report'> <img src='${pageContext.request.contextPath}/FlatUI/img/edit2.png'   width=18px height=18px/></a>
    

    js函数

    function upload(id){
    		 var winObj = window.open ("/portal/trip/toUpload?id="+id, "newwindow", "height=700, width=800, toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no, top=50,left=1100");
    		 var loop = setInterval(function() {       
    		 if(winObj.closed) {      
    				clearInterval(loop);      
    				 window.location.reload();
    		 }      
    		}, 1); 				 
     }
    

     controller

    @RequestMapping("/toUpload")
    	public String toUpload(Long id, HttpServletRequest request){
              request.setAttribute("id",id); return "/tripController/toUpload"; }

    前台toUpload.jsp

    	   <form name="fileForm" action="/portal/trip/upload" method="post" enctype="multipart/form-data">
    	    	<input type="hidden" name="id" id="id" value="${id }">
    	   		<font size="2" face="Arial" color="#004779">Select: </font> <input type="file" name="file"  style="color:#95a5a6; padding-left:5px;border-radius:5px;  500px; height:28px; vertical-align:middle;">
    	   		<input type="submit" value="Upload" style="color:#2c3e50;font-size:12px; font-weight:bold; border-radius:5px; vertical-align:middle;height:30px;  60px; ">
    	   	
    	   </form>
    

     controller upload函数

    @RequestMapping(value = "/upload", method = RequestMethod.POST)  
    	public String upload(@RequestParam("file") MultipartFile image, Long id,HttpServletRequest request, HttpServletResponse response) throws IllegalStateException, IOException{
    		// 转型为MultipartHttpRequest  
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;  
            // 根据前台的name名称得到上传的文件  
            MultipartFile file = multipartRequest.getFile("file");  
            // 获得文件名:  
            String realFileName = file.getOriginalFilename();  
            // 获取路径  
            String ctxPath = request.getSession().getServletContext().getRealPath("/").substring(0, request.getSession().getServletContext().getRealPath("/").lastIndexOf(request.getContextPath().replace("/", "")));
    
            File dirPath = new File(ctxPath+File.separator+"upload"+File.separator+"trip"+File.separator);
            System.out.println("路径�" + dirPath);  
            /*String ctxPath = request.getSession().getServletContext()  
              		 .getRealPath("/download/trip/")  
                       + "/" ; 
            System.out.println("路径�" + ctxPath);  
            // 创建文件  
            File dirPath = new File(ctxPath);  */
            if (!dirPath.exists()) {  
                dirPath.mkdir();  
            }  
            else{
                System.out.println("文件夹已经存在");
            }
            File uploadFile = new File(dirPath +File.separator+ realFileName);  
            FileCopyUtils.copy(file.getBytes(), uploadFile);  
            request.setAttribute("files", loadFiles(request));  
            
            tripService.updateById(id,"filename",realFileName);
            tripService.updateById(id,"ip",request.getRemoteHost());
            request.setAttribute("ip", request.getRemoteHost());
            //List<String> a = loadFiles(request);
    		return "/tripController/success"; 
    	}
    public List<String> loadFiles(HttpServletRequest request) { List<String> files = new ArrayList<String>(); String ctxPath = request.getSession().getServletContext().getRealPath("/").substring(0, request.getSession().getServletContext().getRealPath("/").lastIndexOf(request.getContextPath().replace("/", ""))); File file = new File(ctxPath+File.separator+"upload"+File.separator+"trip"+File.separator); if (file.exists()) { File[] fs = file.listFiles(); String fname = null; for (File f : fs) { if (f.isFile()) { fname=f.getName(); files.add(fname); } } } return files; }
    @RequestMapping("/download/{fileName:.*}") public void download(@PathVariable("fileName") String fileName, HttpServletRequest request, HttpServletResponse response) throws Exception { response.setContentType("text/html;charset=utf-8"); java.io.BufferedInputStream bis = null; java.io.BufferedOutputStream bos = null; String ctxPath = request.getSession().getServletContext().getRealPath("/").substring(0, request.getSession().getServletContext().getRealPath("/").lastIndexOf(request.getContextPath().replace("/", "")))+File.separator+"upload"+File.separator+"trip"+File.separator; String downLoadPath = ctxPath + fileName; System.out.println(downLoadPath); try { long fileLength = new File(downLoadPath).length(); response.setContentType("application/x-msdownload;"); response.setHeader("Content-disposition", "attachment; filename=" +java.net.URLEncoder.encode(fileName, "UTF-8").replace("+","%20")); // + new String(fileName.getBytes("ISO8859-1"), "utf-8")); response.setHeader("Content-Length", String.valueOf(fileLength)); bis = new BufferedInputStream(new FileInputStream(downLoadPath)); bos = new BufferedOutputStream(response.getOutputStream()); byte[] buff = new byte[2048]; int bytesRead; while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) { bos.write(buff, 0, bytesRead); } } catch (Exception e) { e.printStackTrace(); } finally { if (bis != null) bis.close(); if (bos != null) bos.close(); } }

     success.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
        <title></title>
      </head>  
      <body>
    	    <font size="4" face="Arial" color="#004779"><strong>Upload Success!</strong></font>
    	    <hr>
    	    <font size="2" face="Arial" color="#004779"><strong>File List:</strong>
    	    <c:forEach var="month" items="${files}">  
    	        <li><a href="/portal/trip/download/${month}">${month}</a>     </li>  
    	    </c:forEach> 
    	    </font> 
      		<hr><br>  
    <%-- 		 <a href="${pageContext.request.contextPath}/index.jsp">返回</a>  --%>
      </body>
    </html>
    

     下载

    if(data[i].filename==null)
    	str+="<td align='center' bordercolor='#DEDEDE'></td>";
    else
    	str+="<td align='center' bordercolor='#DEDEDE'><a href='/portal/trip/download/"+data[i].filename+"' title='Business Trip Materials Download'><img src='${pageContext.request.contextPath}/FlatUI/img/link.png' width=15px height=15px/></a></td>";
    
  • 相关阅读:
    联想 Vibe Shot(Z90-3) 免recovery 获取ROOT权限 救砖 VIBEUI V3.1_1625
    联想 Z5S(L78071)免解锁BL 免rec 保留数据 ROOT Magisk Xposed 救砖 ZUI 10.5.370
    联想 Z5(L78011) 免解锁BL 免rec 保留数据 ROOT Magisk Xposed 救砖 ZUI 10.5.254
    联想 S5 Pro(L78041)免解锁BL 免rec 保留数据 ROOT Magisk Xposed 救砖 ZUI 5.0.123
    第二阶段 冲刺八
    第二阶段 冲刺七
    第二阶段 冲刺六
    第二阶段 冲刺五
    代码大全阅读笔记03
    学习进度十二
  • 原文地址:https://www.cnblogs.com/wujixing/p/5984893.html
Copyright © 2011-2022 走看看