jsp页面添加按钮,实现下载文件的功能。

    在jsp页面,通过JavaScript添加一个按钮,可以下载本地服务器的一个固定文件,到本地的一个位置。
    感觉应该是一个挺简单的东西,新人有点不太懂,请各位大神指点。
<script type="text/javascropt">
 $eleBtn2.click(function(){
            var $eleForm = $("<form method='get'></form>");

            $eleForm.attr("action","http://www.abc.com/文件.zip");

            $(document.body).append($eleForm);

            //提交表单,实现下载
            $eleForm.submit();
        });
</script>
<button type="button" id="btn2">下载一个zip(方法2)</button>

文件压缩成.zip的,直接在按钮上加上文件链接,就可以下载了

1.利用标签下载,download一定要写
下载
然后下载的文件位置是你浏览器设置的文件保存路径
2.利用form标签下载
2.1 方法情况跟一楼大致相同,但建议建请求的方法有GET 改为 Post,可通过浏览器指定保存路径
2.2 方法跟一楼不同,需要在后台使用流复制文件到指定文件夹。

 <a href="本地服务器资源路径" download="文件名">下载</a>

1.利用标签,download一定要写
下载

 //该方法IE和火狐都可以,
//url表示要下载的文件路径,如:http://127.0.0.1/test.rar
function downloadFile(url) {   
   try{ 
        var elemIF = document.createElement("iframe");   
        elemIF.src = url;   
        elemIF.style.display = "none";   
        document.body.appendChild(elemIF);   
    }catch(e){ 
        alert("下载异常!");
    }     
}

先写后台

    OutputStream os=null;
    try {
        os = response.getOutputStream();
        response.setHeader("Content-disposition",
                "attachment; filename=\""+excelName+"\"");
        response.setContentType("application/ms-excel;charset=UTF-8");
        workbook.write(os);  
        os.flush();
        os.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

下载文件的输出流

然后写个Controller 层或者STRUTS用action 去调用该方法 XXXController

然后写前端

    <form action="<%=CON_CONTEXT_PATH%>/xxxx/XXXController.do"
        method="post" id="queryForm" name="queryForm">
        <input type="hidden" id="method" name="method" value="exportExcel" />

    </form>

    <div class="button_bar"
        style="width: '100%;''padding:1px; margin: 1px; text-align: left;">
        <table border=0 width="100%">
            <tr>

                <td width="100%">
                    <div style="float: right;">
                        <button type="button" tag="REP070105" id="btnSearch" title="查询"></button>
                        <button type="button" id="btnClear" title="清空查询条件"></button>
                        <button type="button" id="btnCloseWin" title="关闭窗口"></button>
                        &nbsp;
                    </div>
                </td>
            </tr>
        </table>
    </div>

    <!--jquery  实现操作 ---- >

    function downloadTmp(){
$("#method").val("downloadTmp");
$('#queryForm')[0].submit();

}

下载方式没有问题,按钮的引用方式有问题,$eleBtn2 应该 改成 $("#btn2")