您的位置:首页 > 编程语言 > Java开发

简单页面下载实例

2015-06-05 17:14 381 查看
前几日搞的下载模块,写了一中比较轻松的下载方法(弊端较多,慎用),分享一下

大致思路就是:

             页面一个下载链接(再不知道下载文件类型的情况下)--------------------->>点击下载---------(通过ajax判断下载类型)----------->下载成功

注意:下载文件命名要与链接一直,否则无法识别

下面为部分代码:

逻辑思路:1、先获取每个类型的链接id

                    2、在ajax中判断(若是需要的下载的类型flag=1,不是count++,id查找结束后,判断count与flag的值,注意:ajax设置为同步加载)

                    3、打开下载链接

<script type="text/javascript">
var url;
var flag = 0;
var count = 0;
var urldown = null;
function urlIsTrue(){
$("a[id^='id_'").each(function(){
var id = $(this).attr('id');
url = document.getElementById(id);
$.ajax({
url:url,
async:false,
type:'HEAD',
error: function() {
count ++;
},
success: function() {
flag = 1;
urldown = url;
}
});
});
if(flag == 1){
window.open(urldown);
}else if(count>-1){
alert("暂无下载文件");
}
}
</script><span style="font-family: Arial, Helvetica, sans-serif;">   </span>


设置需要下载的文件类型:

<div align="right" id="group">
<a id="id_1" href="<%=path %>/download/${commonMsgModel.title}.doc" style="display: none"/>
<a id="id_2" href="<%=path %>/download/${commonMsgModel.title}.jpg" style="display: none"/>
<a id="id_3" href="<%=path %>/download/${commonMsgModel.title}.zip" style="display: none"/>
<a id="id_4" href="<%=path %>/download/${commonMsgModel.title}.rar" style="display: none"/>
<a id="id_5" href="<%=path %>/download/${commonMsgModel.title}.png" style="display: none"/>
<a id="id_6" href="<%=path %>/download/${commonMsgModel.title}.pdf" style="display: none"/>
<a id="id_7" href="<%=path %>/download/${commonMsgModel.title}.xls" style="display: none"/>
<a id="download" href="javascript:void(0);" onclick="urlIsTrue()" class="css_btn_class" style="margin-right: 30px">下载附件</a></div>
</div>


       方法实现简单,但是缺点很多。例如在ajax中判断时会多次循环,原因是查找每个id所致,并且这种方式对页面的消耗也过大,所以不建议采用,若是仅仅是一两种,并且是简单的下载(无需经过后台处理)可使用这种方式。

       需要下载文件建议还是通过后台处理,或是将路径放置在文件或数据库中,这样可以保证页面安全,并且对展现页面效率也有提高。

转载请注明地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jsp js ajax javascript java