在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>
//该方法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>
</div>
</td>
</tr>
</table>
</div>
<!--jquery 实现操作 ---- >
function downloadTmp(){
$("#method").val("downloadTmp");
$('#queryForm')[0].submit();
}
下载方式没有问题,按钮的引用方式有问题,$eleBtn2 应该 改成 $("#btn2")