热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php实现文件下载代码一例,

php教程|php手册php,实现,文件下载,代码,一例,php,实现,文件下载,代码,一例,我们,需要,用到,header,函数,来,发送,php教程-php手册php实现文件下

php教程|php手册php实现文件下载代码一例,
php,实现,文件下载,代码,一例,php,实现,文件下载,代码,一例,我们,需要,用到,header,函数,来,发送,
php教程-php手册
php实现文件下载代码一例,
c map 源码,vscode运行h5无反应,ubuntu gdal,tomcat加载war包重启,qt sqlite 路径,网页设计中的交互设计,远程桌面连接云服务器,针对微信源码的插件,学习前端框架技术,爬虫盒马数据,php备注,搜狗seo快速排名公司,化妆品公司网站源码,wp网页模板,wordpress模板设置,仿支付宝全部页面,学生综合管理系统下载,asp程序整合ucenterlzw
php实现文件下载代码
营销软件源码,vscode网速,ubuntu开机黑屏,linux部署tomcat项目,sqlite3 锁,深圳网页设计公司在哪,mysql数据库优缺点,织梦换服务器,360旋转插件,ie7 前端框架,实现网络爬虫,php的框架,自然SEO,springboot面试全套,php 常用标签,php网站搭建教程txt,做一个网页留言板,phpcmsv9后台界面模板,supesite 后台,手机页面html代码,免费的网站管理系统,租车网站程序lzw
php实现文件下载我们需要用到header函数来发送相关信息给客户端浏览器,同时再结合filesize函数来读取文件大小并进行下载操作。
简单的文件下载只需要使用HTML的连接标记,并将属性href的URL值指定为下载的文件即可。
个人技术博客网站源码,vscode更改编码保存,美国ubuntu源,tomcat启动并访问,爬虫系统实战,php语言格式,长治网络推广与seo优化,校园学生档案网站源码,蓝色医院手机模板lzw
文件下载,只能处理一些浏览器不能默认识别的MIME类型文件,例如当访问book.rar文件时,浏览器并没有直接打开,而是弹出一个下载提示框,提示用户“下载”还是“打开”等处理方式。但如果需要下载后缀名为.html的网页文件、图片文件及PHP程序脚本文件等,使用这种连接形式,则会将文件内容直接输出到浏览器中,并不会提示用户下载。
为了提高文件的安全性,不希望在标签中给出文件的链接,则必须向浏览器发送必要的头信息,以通知浏览器将要进行下载文件的处理。PHP使用header()函数发送网页的头部信息给浏览器,该函数接收一个头信息的字符串作为参数。文件下载需要发送的头信息包括以下三部分,通过调用三次header()函数完成。以下载图片test.jpg为例,需要发送的头信息的所示:
header(‘Content-Type:imge/gif’); //发送指定文件MIME类型的头信息
header(‘Content-Disposition:attachment; filename=”test.jpg”‘); //发送描述文件的头信息,附件和文件名
header(‘Content-Length:3390′); //发送指定文件大小的信息,单位字节

如果使用header()函数向浏览器发送了这三行头信息,图片test.jpg就不会直接在浏览器中显示,而让浏览器将该文件形成下载的形式。在函数header()中,“Content-Type”指定了文件的MIME类型,“Content_Disposition”用于文件的描述,值“attachment; filename=”test.jpg””说明这是一个附件,并且指定了下载后的文件名,“Content_Length”则给出了被下载文件的大小。
设置完头部信息以后,需要将文件的内容输出到浏览器,以便进行下载。可以使用PHP中的文件系统函数将文件内容读取出来后,直接输出给浏览器。最方便的是使用readfile()函数,将文件内容读取出来直接输出。下载文件test.jpg的所示:
$filename = “test.jpg”;
header(‘Content-Type:image/gif’); //指定下载文件类型
header(‘Content-Disposition: attachment; filename=”‘.$filename.'”‘); //指定下载文件的描述
header(‘Content-Length:’.filesize($filename)); //指定下载文件的大小

//将文件内容读取出来并直接输出,以便下载
readfile($filename);
?>

您可能感兴趣的文章:

php文件下载实例代码
php强制文件下载的自定义函数代码
php文件下载(header函数用法)
php实现文件下载实例代码
php header函数文件下载时直接提示保存
php支持断点续传的文件下载类(附源码)
php大文件下载代码(支持断点续传)
php文件下载代码(多浏览器兼容、支持中文文件名)
php文件下载的函数(支持多种格式)
php文件下载类(支持多种文件类型)
php header函数实现文件下载的实例代码

上面如果碰到中文名字就会无法正常下载了,对于中文名字下载文件我又找到一个文件下载实例代码

header(“Content-type:text/html;charset=utf-8”);
// $file_name=”COOKIE.jpg”;
$file_name=”圣诞狂欢.jpg”;
//用以解决中文不能显示出来的问题
$file_name=iconv(“utf-8″,”gb2312”,$file_name);
$file_sub_path=$_SERVER[‘DOCUMENT_ROOT’].”marcofly/phpstudy/down/down/”;
$file_path=$file_sub_path.$file_name;
//首先要判断给定的文件存在与否
if(!file_exists($file_path)){
echo “没有该文件文件”;
return ;
}
$fp=fopen($file_path,”r”);
$file_size=filesize($file_path);
//下载文件需要用到的头
Header(“Content-type: application/octet-stream”);
Header(“Accept-Ranges: bytes”);
Header(“Accept-Length:”.$file_size);
Header(“Content-Disposition: attachment; filename=”.$file_name);
$buffer=1024;
$file_count=0;
//向浏览器返回数据
while(!feof($fp) && $file_count<$file_size){
$file_con=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_con;
}
fclose($fp);
?>
header(“Content-type:text/html;charset=utf-8”)的作用:在服务器响应浏览器的请求时,告诉浏览器以编码格式为UTF-8的编码显示该内容
关于file_exists()函数不支持中文路径的问题:因为php函数比较早,不支持中文,所以如果被下载的文件名是中文的话,需要对其进行字符编码转换,否则file_exists()函数不能识别,可以使用iconv()函数进行编码转换 (www.jbxue.com 脚本学堂)
$file_sub_path() 我使用的是绝对路径,执行效率要比相对路径高
Header(“Content-type: application/octet-stream”)的作用:通过这句代码客户端浏览器就能知道服务端返回的文件形式
Header(“Accept-Ranges: bytes”)的作用:告诉客户端浏览器返回的文件大小是按照字节进行计算的
Header(“Accept-Length:”.$file_size)的作用:告诉浏览器返回的文件大小
Header(“Content-Disposition: attachment; filename=”.$file_name)的作用:告诉浏览器返回的文件的名称

以上四个Header()是必需的
fclose($fp)可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区




推荐阅读
  • 栈是一种先进先出的线性表,对么
    常见问题栈,先进先出,线性表常见问题网络电视直播源码php,ubuntu安装固态硬盘,爬虫思路有哪些,php安全实例,江苏360seolzw栈是一种先进先出的线性表,不对。网页挖矿 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • ORACLE空间管理实验5:块管理之ASSM下高水位的影响
    数据库|mysql教程ORACLE,空间,管理,实验,ASSM,下高,水位,影响,数据库-mysql教程易语言黑客软件源码,vscode左侧搜索,ubuntu怎么看上一页,ecs搭 ... [详细]
  • PHP输出缓冲控制Output Control系列函数详解【PHP】
    后端开发|php教程PHP,输出缓冲,Output,Control后端开发-php教程概述全景网页源码,vscode如何打开c,ubuntu强制解锁,sts启动tomcat慢,sq ... [详细]
  • 用PHP连接MySQL代码的参数说明【PHP】
    后端开发|php教程PHP,连接,MySQL,参数后端开发-php教程代码是这样的:大图标网站源码,怎么在vscode中调试css,ubuntu退出命令行,系统默认开tomcat, ... [详细]
  • Php怎么编写乘法表
    后端开发|PHP问题php,乘法表后端开发-PHP问题传世登陆器源码,vscode设置字号,ubuntu系统创建不了文件,tomcat配置修改,sqlite怎么调中文,海洋采集插件 ... [详细]
  • 无法打开install.wim怎么办
    运维|windows运维install.wim运维-windows运维空间留言网站源码,vscode标准代码,adamsubuntu,tomcat连接共享,sqlite软件基本操作 ... [详细]
  • html锚点是什么详解
    web前端|html教程html,锚点,web前端-html教程学习网页知识入门的肯定是HTML,其中html的锚点到底是干吗的?企业文件微信管理系统源码下载,ubuntu学习网站 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • PHP函数实现分页含文本分页和数字分页【PHP】
    后端开发|php教程PHP,分页后端开发-php教程最近,在项目中要用到分页。分页功能是经常使用的一个功能,所以,对其以函数形式进行了封装。影视网源码带充值系统,vscode配置根 ... [详细]
  • mui框架offcanvas侧滑超出部分隐藏无法滚动如何解决
    web前端|js教程off-canvas,部分,超出web前端-js教程mui框架中off-canvas侧滑的一个缺点就是无法出现滚动条,因为它主要用途是设置类似于qq界面的那种格 ... [详细]
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
  • Oracle 和 mysql的9点区别【MySQL】
    数据库|mysql教程oracle,Oracle,money,mysql,coun数据库-mysql教程1.组函数用法规则mysql中组函数在select语句中可以随意使用,但在o ... [详细]
  • 支付宝扫描敬业福利攻略指南
    支付宝扫【敬业福】攻略:沾沾卡攻略:把所有的卡都给别人,就留了一张敬业;然后再去沾你想要的敬业福,不过还是有概 ... [详细]
author-avatar
Happy的紫璐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有