电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

PHP大文件及斷點續傳下載實現代碼

瀏覽:110日期:2022-09-09 11:52:59

一般來說瀏覽器要同時下載幾個文件,比如pdf文件,會在服務器端把幾個文件壓縮成一個文件。但是導致的問題就是會消耗服務器的cpu和io資源。

那有沒有辦法,用戶點了幾個文件,在客戶端同時下載呢? 支持html5的瀏覽器是可以的,html的a標簽有一個屬性download

<a download='下載的1.pdf' href='http://www.hdgsjgj.cn/bcjs/1.pdf' rel='external nofollow' rel='external nofollow' >單個文件下載</a>, 經過測試在edge瀏覽器,firefox和chrome都支持。但是遺憾的是ie瀏覽器不支持。參考下面的例子。

<!DOCTYPE html><html><head><meta charset='utf-8'><meta http-equiv='X-UA-Compatible' content='IE=Edge,chrome=1'><title></title><script src='http://www.hdgsjgj.cn/uploads/202010/09/16022067251.js'></script></head><body><input type='button' class='downloadAll'value='批量下載' /><script>var filesForDownload = [];filesForDownload[filesForDownload.length] = {path: '1.zip', //要下載的文件路徑name: 'file1.txt' //下載后要顯示的名稱};filesForDownload[filesForDownload.length] = {path: '2.zip',name: 'file2.txt'};filesForDownload[filesForDownload.length] = {path: '3.zip',name: 'file3.txt'};function download(obj) {var temporaryDownloadLink =document.createElement('a');temporaryDownloadLink.style.display =’none’;document.body.appendChild(temporaryDownloadLink);temporaryDownloadLink.setAttribute(’href’, obj.path);temporaryDownloadLink.setAttribute(’download’, obj.name);temporaryDownloadLink.click();document.body.removeChild(temporaryDownloadLink);}$(’input.downloadAll’).click(function(e) {e.preventDefault();for (var x in filesForDownload) {download(filesForDownload[x]);}});</script></body></html>ie瀏覽器怎么辦呢? 也可以用window.open函數。<!DOCTYPE html><html><head><meta charset='utf-8'><title></title><script src='http://www.hdgsjgj.cn/uploads/202010/09/16022067251.js'></script></head><body><a download='下載的1.pdf' href='http://www.hdgsjgj.cn/bcjs/1.pdf' rel='external nofollow' rel='external nofollow' >單個文件下載</a><br><a href='http://www.hdgsjgj.cn/bcjs/7656.html#' rel='external nofollow' class='yourlink'>下載全部文件</a><script>$(’a.yourlink’).click(function(e) {e.preventDefault();window.open(’1.zip’, ’download’);window.open(’2.zip’, ’download’);window.open(’3.zip’, ’download’);});</script></body></html>

完整的方案就是根據瀏覽器類型,調用不同的函數,實現。

另外要下載pdf,而不是在瀏覽器中打開的話,需要配置apache的配置文件,在httpd.conf中增加下面的配置。

<FilesMatch '.pdf$'>

Header set Content-Disposition attachment

</FilesMatch>

或者使用down2組件,下載更簡單。

JavaScript:

引入頭

<head><metahttp-equiv='Content-Type' content='text/html; charset=utf-8'/><title>donw2-多文件演示頁面</title><linktype='text/css' href='http://www.hdgsjgj.cn/bcjs/js/down.css' rel='external nofollow' rel='Stylesheet'/><scripttype='text/javascript' src='http://www.hdgsjgj.cn/bcjs/js/jquery-1.4.min.js'></script><scripttype='text/javascript' src='http://www.hdgsjgj.cn/bcjs/js/down.app.js'charset='utf-8'></script><scripttype='text/javascript' src='http://www.hdgsjgj.cn/bcjs/js/down.edge.js'charset='utf-8'></script><scripttype='text/javascript' src='http://www.hdgsjgj.cn/bcjs/js/down.file.js'charset='utf-8'></script><scripttype='text/javascript' src='http://www.hdgsjgj.cn/bcjs/js/down.folder.js'charset='utf-8'></script><scripttype='text/javascript' src='http://www.hdgsjgj.cn/bcjs/js/down.js'charset='utf-8'></script></head>

創建down2對象

var downer = new DownloaderMgr();downer.Config['Folder'] = ''; //設置默認下載路徑。//掛載事件downer.event.taskCreate = function(obj) {$(document.body).append('文件ID:' + obj.fileSvr.id) + '<br/>';};downer.event.downProcess = function(obj) {};downer.event.downStoped = function(obj) {};downer.event.downComplete = function(obj) {$(document.body).append(’<div>本地路徑:’ +obj.fileSvr.pathLoc + ’</div>’);};downer.event.downError = function(obj,err) {};downer.event.queueComplete = function() {$(document.body).append('<div>隊列完成</div>');};

批量下載url

$('#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);});

當成一個文件夾下載

$('#btn-down-json').click(function() {if (downer.Config['Folder'] == '') {downer.open_folder();return;}var fd = {nameLoc: '圖片列表',files: [{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.addJson(fd);});

下載多級目錄

$('#btn-down-fd').click(function() {if (downer.Config['Folder'] == '') {downer.open_folder();return;}var fd = {nameLoc: '測試文件夾',files: [{fileUrl: 'http://www.ncmem.com/images/ico-ftp.jpg'}, {fileUrl: 'http://www.ncmem.com/images/ico-up.jpg'}],folders: [{nameLoc: '圖片1',files: [{fileUrl: 'http://www.ncmem.com/images/ico-ftp.jpg'}, {fileUrl: 'http://www.ncmem.com/images/ico-up.jpg'}, {fileUrl: 'http://www.ncmem.com/images/ico-capture.jpg'}, {fileUrl: 'http://www.ncmem.com/images/ico-imageuploader.gif'}, {fileUrl: 'http://www.ncmem.com/images/ico-wordpaster.gif'}],folders: [{nameLoc: '軟件',files: [{fileUrl: 'http://res2.ncmem.com/res/images/edit-file.png'}]}]}]};downer.app.addJson(fd);});

自定義下載文件名稱

$('#btn-down-svr').click(function () { if (downer.Config['Folder'] == '') { downer.open_folder(); return; } var urls = [ { fileUrl: 'http://localhost:90/db/down.aspx', nameLoc: 'test.exe' } , { fileUrl: 'http://localhost:90/db/down.aspx', nameLoc: 'test-1.exe' } ]; downer.app.addUrls(urls);});

實現效果:

PHP大文件及斷點續傳下載實現代碼

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: PHP
相關文章:
主站蜘蛛池模板: 船用泵,船用离心泵,船用喷射泵,泰州隆华船舶设备有限公司 | 不锈钢水管-不锈钢燃气管-卫生级不锈钢管件-不锈钢食品级水管-广东双兴新材料集团有限公司 | 钣金加工厂家-钣金加工-佛山钣金厂-月汇好 | 干法制粒机_智能干法制粒机_张家港市开创机械制造有限公司 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 智能电表|预付费ic卡水电表|nb智能无线远传载波电表-福建百悦信息科技有限公司 | 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 自动螺旋上料机厂家价格-斗式提升机定制-螺杆绞龙输送机-杰凯上料机 | 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 北京森语科技有限公司-模型制作专家-展览展示-沙盘模型设计制作-多媒体模型软硬件开发-三维地理信息交互沙盘 | 粉丝机械,粉丝烘干机,粉丝生产线-招远市远东粉丝机械有限公司 | 合肥注册公司|合肥代办营业执照、2024注册公司流程 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 苏商学院官网 - 江苏地区唯一一家企业家自办的前瞻型、实操型商学院 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 | 智慧养老_居家养老_社区养老_杰佳通| 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 浙江上沪阀门有限公司| 合肥废气治理设备_安徽除尘设备_工业废气处理设备厂家-盈凯环保 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 隔爆型防爆端子分线箱_防爆空气开关箱|依客思 | 北京康百特科技有限公司-分子蒸馏-短程分子蒸馏设备-实验室分子蒸馏设备 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 青岛成人高考_山东成考报名网 | 河南砖机首页-全自动液压免烧砖机,小型砌块水泥砖机厂家[十年老厂] | Win10系统下载_32位/64位系统/专业版/纯净版下载 | 闪电优家-卫生间防水补漏_酒店漏水渗水维修_防水堵漏公司 | 板材品牌-中国胶合板行业十大品牌-环保板材-上海声达板材 | 珠宝展柜-玻璃精品展柜-首饰珠宝展示柜定制-鸿钛展柜厂家 | 超声骨密度仪,双能X射线骨密度仪【起草单位】,骨密度检测仪厂家 - 品源医疗(江苏)有限公司 | 低气压试验箱_高低温低气压试验箱_低气压实验箱 |林频试验设备品牌 | 猎头招聘_深圳猎头公司_知名猎头公司 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 热闷罐-高温罐-钢渣热闷罐-山东鑫泰鑫智能热闷罐厂家 | 欧版反击式破碎机-欧版反击破-矿山石料破碎生产线-青州奥凯诺机械 | 房在线-免费房产管理系统软件-二手房中介房屋房源管理系统软件 | 一礼通 (www.yilitong.com)-企业礼品解决方案一站式服务平台 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 匀胶机旋涂仪-声扫显微镜-工业水浸超声-安赛斯(北京)科技有限公司 | 直流电能表-充电桩电能表-导轨式电能表-智能电能表-浙江科为电气有限公司 |