文件夹下载插件webupload插件

关于兼容性问题:

  <a href="xxx.docx" target='_blank'></a>

  下载文件时,这种写法是没有兼容性问题;但是下载图片时,IE 上会出现当前页面直接打开图片的问题,即便是加了 target='_blank'。

单个文件批量下载

 

方法一:H5 <a> 新特性

  HTML 5 里面为 <a> 标签添加了一个 download 的属性,我们可以轻易的利用它来实现下载功能。download 的属性值是可选的,它用来指定下载文件的文件名。

<a href="http://somehost/somefile.zip" download="filename.zip">Download file</a>

 

方法二:js

js 实现的思路是:

添加 <a>标签

用 JavaScript 创建一个隐藏的 <a> 标签

设置它的 href 属性

设置它的 download 属性

用 JavaScript 来触发这个它的 click 事件

实现代码:假设引入了 jquery.js

var a = document.createElement('a');

var url = window.URL.createObjectURL(blob);

var filename = 'what-you-want.txt';

href = url;

download = filename;

click();

remove(); // 移除掉 <a>

 

如果不用 H5 新特性,动态添加 <iframe>

  会独立打开一个窗口,发起该请求,当请求完成后,该界面会自动关闭。

 var frame = $('<iframe style="display: none;" class="multi-download"></iframe>');

 frame.attr('src', url);

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

 setTimeout(function() {

   frame.remove();

 }, 1000);

 

兼容 IE 360兼容模式:

如果文件不是 .png .gif .jpg 这种照片格式,可采用 window.open(url,  '_blank') 下载。

function isIE() {

    if ( !! window.ActiveXObject || 'ActiveXObject' in window) {

        return true

    } else {

        return false

    }

},

 

function download() {

    let url = '../../../static/cds/files/研究方案及团队情况表.docx'

    if (this.isIE()) { // IE

        window.open(url, '_blank')

    } else {

        let a = document.createElement('a') // 创建a标签

        let e = document.createEvent('MouseEvents') // 创建鼠标事件对象

        e.initEvent('click', false, false) // 初始化事件对象

        href = url // 设置下载地址

        download = 'xxxx表' // 设置下载文件名

        dispatchEvent(e)

    }

},

 

批量下载多个文件:

思路:将 url 放在一个数组里,循环数组并触发下载:

let files = ['url1', 'url2'] // 所有文件

files.forEach(url = >{

    if (this.isIE()) { // IE

        window.open(url, '_blank')

    } else {

        let a = document.createElement('a') // 创建a标签

        let e = document.createEvent('MouseEvents') // 创建鼠标事件对象

        e.initEvent('click', false, false) // 初始化事件对象

        href = url // 设置下载地址

        download = '' // 设置下载文件名

        dispatchEvent(e)

    }

})

 

使用down2的代码:

批量下载文件

    $("#btn-down-files").click(function () {

        if (downer.Config["Folder"] == "") { downer.open_folder(); return; }

        var urls = [

            { fileUrl: "http://res2.ncmem.com/res/images/ie11.png" }

            , { fileUrl: "http://res2.ncmem.com/res/images/up6.1/down.png" }

            , { fileUrl: "http://res2.ncmem.com/res/images/firefox.png" }

            , { fileUrl: "http://res2.ncmem.com/res/images/edge.png" }

            , { fileUrl: "http://res2.ncmem.com/res/images/up6.1/cloud.png" }

            , { fileUrl: "http://res2.ncmem.com/res/images/home/w.png" }

            , { fileUrl: "http://res2.ncmem.com/res/images/img.png" }

        ];

        downer.app.addUrls(urls);

    });

 

引入head头

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>donw2-多文件演示页面</title>

    <link type="text/css" href="js/down.css" rel="Stylesheet" />

    <script type="text/javascript" src="js/jquery-1.4.min.js"></script>

    <script type="text/javascript" src="js/down.app.js" charset="utf-8"></script>

    <script type="text/javascript" src="js/down.edge.js" charset="utf-8"></script>

    <script type="text/javascript" src="js/down.file.js" charset="utf-8"></script>

    <script type="text/javascript" src="js/down.folder.js" charset="utf-8"></script>

    <script type="text/javascript" src="js/down.js" charset="utf-8"></script>

</head>

 

详细配置信息可以参考我写的这篇文章:http://blog.ncmem.com/wordpress/2019/08/28/php%e6%96%87%e4%bb%b6%e6%89%b9%e9%87%8f%e4%b8%8b%e8%bd%bd/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于OA系统是基于WEB方式的,如果只判断用户是否点击“下载文件”,就来判断用户是否成功下载了文件。这种方式很显然行不通,怎么办呢?我想到的就是用一控件,然后用回调事件来处理数据库方面的问题(下载记录问题) 有兴趣的朋友可在 http://www.interdrp.com/ 下载分销系统 用测试帐号进系统后,点测试程序,再点WEB下载 可以看见效果 https://www.interdrp.com/software/ReYoWebDownLoad.zip(点击下载此控件) API说明 ReYoWebDL.copyright="锐洋软件拥有版权 http://www.interdrp.com/" //必须 ReYoWebDL.url="http://dl.baofeng.com/storm3/Storm2009-0504-1.exe" //下载文件的路径 ReYoWebDL.path ="" //保存文件地址 ReYoWebDL.ReYoStartDownload() //下载动作 ReYoWebDL.ReYoStopDownload() //停止下载 ReYoWebDL.size //下载文件大小 ReYoWebDL.bytes//已下载大小 ReYoWebDL.speed //下载速度 KB/S ReYoWebDL.done //下载是否完成 ReYoWebDL.cancle=true; //是否取消下载 ReYoWebDL.urlsource //下载文件 ReYoWebDL.percent //下载百分比 升级提示: 20090506:新增剩余时间,下载百分比进度,下载速度及文件保存位置显示;且支持断点续传功能。 20090504:新增下载过程序取消下载动作。 20090502:新增文件存在提示。 目前控件支持两种方式下载: 1:开发者在程序中指定下载文件的url,保存文件的path。例如:download("http://www.interdrp.com/software/hotel/setup.zip","c:\a.zip" 2:开发者在程序中指定下载文件的url,不指定保存文件的path,系统会提示您选择保存文件的路径。例如:download("http://www.interdrp.com/software/hotel/setup.zip",""
WordPress的文件下载插件,那么就非WP-DownLoadManager插件莫属了,此插件可以说功能强悍,它可以添加本地文件、远程文件、可以自定义本地文件在服务器上的路径,可以修改在前台显示的模板参数。 WP-DownLoadManager插件安装: 下载wp-downloadmanager插件,将文件解压缩,上传到/wp-content/plugins/目录。 登录wordpress后台控制面板激活该插件,这是后台左侧栏或多出个Downloads标签,点击标签会出现下拉列表,可以对其进行相应的设置。 下拉列表中主要有: Manage Downloads:管理下载 Add File:添加文件 添加下载的文件,在页面中可以上传文件、删除文件、设置下载文件以及描述等内容。 Download Options:下载选项 下载选项,这里主要设置下载的路径、下载的URL、下载页面的URL、下载的连接、下载的方式等内容,不是太难,这里不做过多介绍。 Download Templates:下载模板,设置模板样式 Uninstall WP-DownloadManager:卸载WP-DownloadManager 添加下载: a.日志中添加下载:大家可以看到当你激活该插件后“添加新文章”时会多一个“下载”选项图标,点击以后只需填入阿拉伯数字,然后在页面中会插入[download id="ID"],此阿拉伯数字即为ID(你添加下载文档时的ID)。 [download id="ID" display="both"],display=”1″表示只显示你的文件;display=”both”表示显示你的文件和文件简介! [download id="1,2,3" category="4,5,6"] 为显示多个下载文件为1,2,3的文档,category=”4,5,6″为对应的分类ID。 b.在页面中添加下载:当你添加页面时在内容框插入:[page_download]或[page_download category="1"]即可填写下载了 c.主题模板中添加,添加时,你可使用代码进行,也可使用widget。 使用代码方法: 最新下载使用 <?php if (function_exists('get_recent_downloads')): ?> <?php get_recent_downloads(10); ?> <?php endif; ?> “10”为你要显示的下载文档数 显示分类下载 <?php if (function_exists('get_downloads_category')): ?> <?php get_downloads_category(1, 10); ?> <?php endif; ?> “1”为分类ID,“10”为你要显示的下载文档数 最多下载使用 <?php if (function_exists('get_most_downloaded')): ?> <?php get_most_downloaded(10); ?> <?php endif; ?> “10”为你要显示的下载文档数 使用Wideget:在激活插件的同时,也要激活插件的Wideget,激活后,在左边的侧栏中,点击"Appearance"-->Widegets,添加Most Downloaded(最多下载)和Recent Downloads(最近下载)即可,使用这种方式添加,内容会出现在前台页面的侧栏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值