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 相关文章推荐
dede3.1分页文字采集过滤规则详说(图文教程)
Apr 03 PHP
PHP基础教程(php入门基础教程)一些code代码
Jan 06 PHP
PHP 常用数组内部函数(Array Functions)介绍
Jun 05 PHP
基于PHP开发中的安全防范知识详解
Jun 06 PHP
PHP zip扩展Linux下安装过程分享
May 05 PHP
CodeIgniter配置之routes.php用法实例分析
Jan 19 PHP
php版交通银行网银支付接口开发入门教程
Sep 26 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
Oct 08 PHP
微信 开发生成带参数的二维码的实例
Nov 23 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
Feb 06 PHP
详解php与ethereum客户端交互
Apr 28 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
Dec 07 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
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
2017/08/03 PHP
PHP 访问数据库配置通用方法(json)
2018/05/20 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
海量经典的jQuery插件集合
2010/01/12 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
关于session和cookie的简单理解
2016/06/08 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
js实现放大镜特效
2017/05/18 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
2017/12/11 Javascript
[01:01:43]EG vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
python读取json文件并将数据插入到mongodb的方法
2015/03/23 Python
在Python中使用Mako模版库的简单教程
2015/04/08 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
Python 移动光标位置的方法
2019/01/20 Python
python之array赋值技巧分享
2019/11/28 Python
django框架cookie和session用法实例详解
2019/12/10 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
网络管理员岗位职责
2014/03/17 职场文书
感恩父母主题班会
2015/08/12 职场文书
2016年清明节寄语
2015/12/04 职场文书
JavaScript实现复选框全选功能
2021/04/11 Javascript