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 @   亲爱的阿道君  阅读(156)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示