非常规打开文件,java&js

    技术2022-05-19  19

    需求是通过页面点击按钮打开或保存文件,如下图:

    实现代码如下:

    在需要导出的页面加上:

    <script language="javascript"> <%   String fileName = request.getAttribute("fileName")==null?null:(String)request.getAttribute("fileName");   if(fileName!=null && !"".equals(fileName)) { %> function toExcelFile() {  var url = "../download.jsp?fileName=<%=fileName%>";//转向网页的地址;  var name = "下载";//网页名称,可为空;  var iWidth = 200;//弹出窗口的宽度;  var iHeight = 120;//弹出窗口的高度;  var iTop = (window.screen.availHeight-30-iHeight)/2;       //获得窗口的垂直位置;  var iLeft = (window.screen.availWidth-10-iWidth)/2;           //获得窗口的水平位置;

      window.showModalDialog(url,name,'dialogHeight:'+iHeight+'px;dialogWidth:'+iWidth+'px;dialogLeft:'+iLeft+';dialogTop:'+iTop+';center:yes');   }}toExcelFile(); <%}%>  </script>

    webRoot目录底下的download.jsp页面如下:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>文件下载</title>     <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0">     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <style type="text/css">   .align-center{        margin:40 auto;      /* 居中 这个是必须的,,其它的属性非必须 */        width:100px;        /* 给个宽度 顶到浏览器的两边就看不出居中效果了 */        /*background:red;*/     /* 背景色 */        text-align:center;  /* 文字等内容居中 */    }    body{text-align:center;}  </style>  </head>    <body>    <% String fileName = request.getParameter("fileName"); %>    <div class="align-center">    <a href="export_file/<%= fileName %>" title="请点击保存文件">生成的文件</a>    </div>  </body></html>

     

    这样就可以了。

     

    另外附上java打开文件的代码(无意中知道的):

    Process p1 = Runtime.getRuntime().exec("cmd   /c   start   "+fileURL);


    最新回复(0)