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 相关文章推荐
PHP 高手之路(一)
Oct 09 PHP
php 页面执行时间计算代码
Dec 04 PHP
PHP调用Webservice实例代码
Jul 29 PHP
Codeigniter发送邮件的方法
Mar 19 PHP
必须收藏的php实用代码片段
Feb 02 PHP
PHP简单实现DES加密解密的方法
Jul 12 PHP
php.ini中date.timezone设置详解
Nov 20 PHP
PHP通过引用传递参数用法分析
Dec 01 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
May 12 PHP
PHP模糊查询技术实例分析【附源码下载】
Mar 07 PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 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
php中显示数组与对象的实现代码
2011/04/18 PHP
PHP中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
javascript 获取图片颜色
2009/04/05 Javascript
JavaScript 保存数组到Cookie的代码
2010/04/14 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
Node.js的Web模板引擎ejs的入门使用教程
2016/06/06 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
javascript算法之二叉搜索树的示例代码
2017/09/12 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
简介二分查找算法与相关的Python实现示例
2015/08/26 Python
Python 装饰器深入理解
2017/03/16 Python
Python矩阵常见运算操作实例总结
2017/09/29 Python
python实现微信接口(itchat)详细介绍
2017/10/23 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
python 利用栈和队列模拟递归的过程
2018/05/29 Python
Python函数中的可变长参数详解
2019/09/12 Python
Python通过Pillow实现图片对比
2020/04/29 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
建筑装饰学院室内设计专业个人自我评价
2013/12/07 职场文书
如何撰写岗位职责
2014/02/01 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
先进个人材料怎么写
2014/12/30 职场文书
党风廉政建设个人总结
2015/03/06 职场文书
房产证明范本
2015/06/19 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
Go 中的空白标识符下划线
2022/03/25 Golang
python内置模块之上下文管理contextlib
2022/06/14 Python