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) {
            }
        }
    }

 

posted @ 2019-10-23 10:49  亲爱的阿道君  阅读(155)  评论(0编辑  收藏  举报