关于java下载excel,pdf等demo

本文介绍了一种使用前端JavaScript创建并触发a标签点击事件来实现文件下载的方法,并展示了如何通过后端Java代码设置响应头及使用输入输出流完成PDF文件的下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先关于触发事件应该a标签事件

var url=“http://www.w3school.com.cn/tags/att_a_target.asp”;

 var a = document.createElement("a");
    a.setAttribute("href", url);
    a.setAttribute("target", "_blank");
    a.setAttribute("id", "openwin");
    document.body.appendChild(a);
    a.click();

这个是前台调用的地方后台代码简单主要运用输入输出流

@RequestMapping(params = "actionMethod=getHelpPdf")
    public void  getHelpPdf(HttpServletRequest request,HttpServletResponse response, Model model) throws Exception {
        String filePath = Parameter.getInstance().getProp().getProperty("helpPath")+"help.pdf";
        String helpName = Parameter.getInstance().getProp().getProperty("helpName");
                String filename = helpName+" .pdf";  
                if (null != filename) {  
                    filename = filename.trim();  
                }  
                response.setCharacterEncoding("utf-8");  
                response.setContentType("application/pdf");
                response.setHeader("Content-Disposition", "attachment;fileName=" + filename);  
                String agent = request.getHeader("USER-AGENT").toLowerCase();
                String codedFileName = java.net.URLEncoder.encode(filename, "UTF-8");
                if (agent.contains("firefox")) {
                    response.setHeader("Content-Disposition", "attachment; filename="
                            + new String(filename.getBytes("gb2312"), "ISO8859-1"));
                } else {
                    response.setHeader("content-disposition", "attachment;filename="
                            + codedFileName);
                }
                try {  
                    File file = new File(filePath);  
                    System.out.println(file.getAbsolutePath());  
                    InputStream inputStream = new FileInputStream(file);  
                    OutputStream os = response.getOutputStream();  
                    byte[] b = new byte[1024];  
                    int length;  
                    while ((length = inputStream.read(b)) > 0) {  
                        os.write(b, 0, length);  
                    }  
                    os.flush();  
                    os.close();  
                    inputStream.close();  
                } catch (FileNotFoundException e) {  
                    e.printStackTrace();  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }  
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值