zoukankan      html  css  js  c++  java
  • excel导出

      前端代码:

    <form id="downloadForm" action="#" method="get">
       <input type="hidden" id="fileId" name="fileId">
        <input type="hidden" id="filename" name="filename">
    </form>

    JS:

     var filename = encodeURI(fksm + ".xls")
            $("#downloadForm #fileId").val(fileId);
            $("#downloadForm #filename").val(filename);
            $('#downloadForm').attr('action', '${pageContext.request.contextPath}/cs/downPaymentFile.do?fileId=' + fileId + '&filename=' + filename);
            $('#downloadForm').submit();

    后台代码:

    /**
         * 下载付款附件
         * @param request
         * @param response
         */
        @RequestMapping(value = "/downPaymentFile.do", method = RequestMethod.GET)
        public void downPicture(HttpServletRequest request, HttpServletResponse response) throws Exception{
            InputStream in = null;
            String fileId = request.getParameter("fileId");
            String filename = request.getParameter("filename");
            filename = new String(filename.getBytes("GB2312"),"iso-8859-1");
    
            try {
                String messageRes = ImageSystemUtils.fileView(fileId);
                JSONObject msgGetPictures = JSONObject.parseObject(messageRes);
                String statusGetPictures = msgGetPictures.getString("status");
                //若返回成功
                if (("200").equals(statusGetPictures)) {
                    //获取返回的data字段值
                    String data = msgGetPictures.getString("data");
                    JSONObject jsonObject = JSONObject.parseObject(data);
                    String url = jsonObject.getString("filePath").replaceAll("\\", "/");
                    
                    URL httpUrl = new URL(url);
                    HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();
                    conn.setRequestMethod("GET");
                    conn.setDoInput(true);
                    conn.setDoOutput(true);
                    conn.setUseCaches(false);
                    conn.connect();
    
                    in = conn.getInputStream();
                    byte[] bs = new byte[1024 * 10];
                    int len = 0;
                    response.reset();
    
                    response.setHeader("Pragma", "no-cache");
                    response.setHeader("Cache-Control", "no-cache");
                    response.setHeader("Content-Type", "application/octet-stream");
                    response.setHeader("Content-Disposition", "attachment;filename=" + filename);
                    ServletOutputStream out = response.getOutputStream();
                    while ((len = in.read(bs)) != -1) {
                        out.write(bs, 0, len);
                    }
                }
            } catch (Exception e) {
                throw new RuntimeException("下载失败");
            } finally {
                try {
                    in.close();
                } catch (Exception e) {
                }
            }
        }
  • 相关阅读:
    Light oj 1082 Array Queries(区间最小值)
    Codeforces Round #179 (Div. 2)A、B、C、D
    poj 1976 A Mini Locomotive(01背包)
    Codeforces Round #178 (Div. 2)
    hackerrank challenges median
    poj 1961 Period(kmp最短循环节)
    poj 2182 Lost Cows(树状数组)
    ZOJ1117 POJ1521 HDU1053 Huffman编码
    poj 2352 Stars 树状数组
    这可能是最适合萌新入门Web安全的路线规划
  • 原文地址:https://www.cnblogs.com/lovedaodao/p/11724986.html
Copyright © 2011-2022 走看看