简单页面下载实例

前几日搞的下载模块,写了一中比较轻松的下载方法(弊端较多,慎用),分享一下


大致思路就是:

             页面一个下载链接(再不知道下载文件类型的情况下)--------------------->>点击下载---------(通过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);" οnclick="urlIsTrue()" class="css_btn_class" style="margin-right: 30px">下载附件</a></div>
       </div>


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

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


转载请注明地址



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值