php+js实现的无刷新下载文件功能示例


Posted in PHP onAugust 23, 2019

本文实例讲述了php+js实现的无刷新下载文件功能。分享给大家供大家参考,具体如下:

服务器端页面

步骤就是,设置头文件参数,然后读入并输出文件。下面代码的file_get_contents可以使用fread,fclose代替。

download.php

<?php
$filename = $_GET['filename'];
$path = __DIR__."/file/".$filename;
Header( "Content-type: application/octet-stream");
Header( "Accept-Ranges: bytes ");
Header( "Accept-Length: " .filesize($filename));
header( "Content-Disposition: attachment; filename={$filename}");
echo file_get_contents($filename);

前端页面

在很多时候,我们下载文件的操作,都是在前端页面直接点击下载的,而不是专门跳转到上面的download.php去下载。

所以我们需要在前端实现无刷新访问download.php来下载文件,通过隐藏的iframe来实现是不错的方式。下面是代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<a href="javascript:download_file('http://localhost/download.php?filename=\" rel="external nofollow" 测试文件.doc\"')">下载</a>
<script type="text/javascript">
  function download_file(url)
  {
    if (typeof (download_file.iframe) == "undefined")
    {
      var iframe = document.createElement("iframe");
      download_file.iframe = iframe;
      document.body.appendChild(download_file.iframe);
    }
    //alert(download_file.iframe);
    download_file.iframe.src = url;
    download_file.iframe.style.display = "none";
  }
</script>
</body>
</html>

file_get_contents先读取,然后echo的方式。可以使用readfile函数代替,效率更高。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
Oct 09 PHP
phpwind中的数据库操作类
Jan 02 PHP
linux下 C语言对 php 扩展
Dec 14 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
利用中国天气预报接口实现简单天气预报
Jan 20 PHP
PHP实现更新中间关联表数据的两种方法
Sep 01 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
YII Framework框架教程之国际化实现方法
Mar 14 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
May 16 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
Apr 05 PHP
PHP实现两种排课方式
Jun 26 PHP
php简单检测404页面的方法示例
Aug 23 #PHP
PHP Redis扩展无法加载的问题解决方法
Aug 22 #PHP
PHP Primary script unknown 解决方法总结
Aug 22 #PHP
php用wangeditor3实现图片上传功能
Aug 22 #PHP
PHP生成zip压缩包的常用方法示例
Aug 22 #PHP
Laravel 实现数据软删除功能
Aug 21 #PHP
PHP针对redis常用操作实例详解
Aug 17 #PHP
You might like
哪吒敖丙传:新人物二哥敖乙出场 小敖丙奶气十足
2020/03/08 国漫
PHP新手上路(七)
2006/10/09 PHP
apache rewrite_module模块使用教程
2008/01/10 PHP
PHP 一个随机字符串生成代码
2010/05/26 PHP
php 抽象类的简单应用
2011/09/06 PHP
php方法调用模式与函数调用模式简例
2011/09/20 PHP
php定时计划任务的实现方法详解
2013/06/06 PHP
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
php使用GD库创建图片缩略图的方法
2015/06/10 PHP
php中session定期自动清理的方法
2015/11/12 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
2016/12/09 PHP
驱动事件的addEvent.js代码
2007/03/27 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
AngularJS基础 ng-readonly 指令简单示例
2016/08/02 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
在GitHub Pages上使用Pelican搭建博客的教程
2015/04/25 Python
python抓取最新博客内容并生成Rss
2015/05/17 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
python Pexpect模块的使用
2020/12/25 Python
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
学校门卫工作职责
2013/12/07 职场文书
优秀的导游求职信范文
2014/04/06 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
市场营销策划方案
2014/06/11 职场文书