1. /**
  2. * @author      default7<default7@zbphp.com>
  3. * @description 演示PHP弹出下载的原理
  4. *
  5. * @param $file_name
  6. */
  7. function downFile($file_name)
  8. {
  9. $file_path = "/tmp/" . $file_name;
  10. $buffer = 102400; //一次返回102400个字节
  11. if (!file_exists($file_path)) {
  12. echo "<script type='text/javascript'> alert('对不起!该文件不存在或已被删除!'); </script>";
  13. return;
  14. }
  15. $fp = fopen($file_path, "r");
  16. $file_size = filesize($file_path);
  17. $file_data = '';
  18. while (!feof($fp)) {
  19. $file_data .= fread($fp, $buffer);
  20. }
  21. fclose($fp);
  22. //Begin writing headers
  23. header("Pragma: public");
  24. header("Expires: 0");
  25. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  26. header("Cache-Control: public");
  27. header("Content-Description: File Transfer");
  28. header("Content-type:application/octet-stream;");
  29. header("Accept-Ranges:bytes");
  30. header("Accept-Length:{$file_size}");
  31. header("Content-Disposition:attachment; filename={$file_name}");
  32. header("Content-Transfer-Encoding: binary");
  33. echo $file_data;
  34. }

PHP 弹出文件下载 原理 代码的更多相关文章

  1. jQuery弹出窗口完整代码

    jQuery弹出窗口完整代码 效果体验:http://keleyi.com/keleyi/phtml/jqtexiao/1.htm 1 <!DOCTYPE html PUBLIC "- ...

  2. jquery层居中,点击小图查看大图,弹出层居中代码,顶部层固定不动,滚动条滚动情况

    jquery层居中,点击小图查看大图,弹出层居中代码 http://www.cnblogs.com/simpledev/p/3566280.html 见第一版,发现一个情况,如果页面内容多出一屏的情况 ...

  3. 基于jQuery图片弹出翻转特效代码

    分享一款基于jQuery图片弹出翻转特效代码.这是一款基于jQuery+HTML5实现的,里面包含六款不同效果的鼠标点击图片弹出特效下载.效果图如下: 在线预览   源码下载 实现的代码. html代 ...

  4. PHP 弹出文件下载

    /** * @author default7<default7@zbphp.com> * @description 演示PHP弹出下载的原理 * * @param $file_name * ...

  5. 使用DIV弹出框的代码示例,备忘。

    1.思路 使用DIV模拟弹出框,一共用三个div: divWindow: 原来的界面内容区域 divLogin:要弹出的内容区域 divBackground:给弹出内容区域做个遮罩的区域. 点击 “请 ...

  6. HTML页面弹出窗口调整代码总结

    弹出跟你当前的窗口有没有菜单工具栏没有关系,你只要在页面中写一个脚本它就弹出了.比如<a href=# onclick="window.open('xxx.aspx','窗口名称',' ...

  7. Android封装类似微信的顶部TitleBar弹出的PopupWindow代码

    Android仿微信顶部titlebar,点击加号弹出的PopupWindow,是封装好的PopupWindow,直接拿来用即可,先看效果图:  调用代码非常简单,这是MainActivity的代码: ...

  8. jquery-创建弹出框原理

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. jquery层居中,点击小图查看大图,弹出层居中代码

    1.层居中 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

随机推荐

  1. [翻译]HTTP--一个应用级的协议

    原文地址:HTTP — an Application-Level Protocol 简介 在不丹,当人们见面时,他们通常用“你身体还好吗?”互相打招呼.在日本,根据当时的情形,人们可能会互相鞠躬.在阿 ...

  2. 如何修改tomcat端口以及tomcat热部署

    一.修改tomcat端口 1.首先我们需要知道,http的默认端口是80,tomcat的默认端口是8080,也就是说,如果我们将tomcat的默认端口号修改为80,输入网址的时候就可以不用输入端口了, ...

  3. phpstorm 破解方法

    前提概要:我收到博友:3102009292 的消息,发给我另一个破解PHPstorm的方法,我亲测有效,方便快捷,在和博友商量后,决定加入我的本文章中,供更多的开发者参考,话不多说,重点来了. 按照P ...

  4. 给hackrf加上1602LCD以及UART(附带固件编译方法)

    代码库(在hackrf原代码库基础上只添了两个文件,改了一个文件): https://github.com/JiaoXianjun/hackrf-UART-1602LCD 目的主要是为了帮助想更改调试 ...

  5. SEL_CallFuncN,SEL_CallFuncO等的区别

    ocos2d-x中有大量的回调函数的应用,主要有以下几类,看下CCObject.h中的定义 typedef void (CCObject::*SEL_SCHEDULE)(float);// 用来调up ...

  6. dataGridView1.DataSource,解决查询结果不从第一行显示,而是不断往表下面扩展问题

    private void 洱海各月出流流量frm_Load(object sender, EventArgs e) { //在查询按钮中用下面这段代码会出现打开数据库出错的现象 MyTable1.Ro ...

  7. Java平台标准版本

    JDK   Java Language Java Language     Tools &Tool APIs java javac javadoc jar javap jdeps Script ...

  8. fluent nhibernate映射的数值类型问题

    fluent nhibernate中,数值类型设置不当,就可能会引发一些意想不到错误. 一.引发映射错误 比如,oracle数据库中,字段ID类型是number,结果用codesmith生成代码,实体 ...

  9. Locust 其他协议

    Locust 是基于HTTP作为主要目标构建的,但是他同样可以扩展其他的协议,接受请求与获得返回.在编写的客户端的时候,我们就要使用到最常使用的 request_success 和 request_f ...

  10. Android Kernel save defalut config

    /********************************************************************************* * Android Kernel ...