PHP实现文件的下载实例代码,php实现文件下载代

作者: 关于计算机  发布:2019-09-26

简单的文件下载只须要利用HTML的一连标志<a>,并将质量href的U冠道L值内定为下载的公文就能够。代码如下所示:

php完结公文下载代码

 代码如下

须求动用header函数来发送有关音讯给顾客端浏览器,同不平日间再组成filesize函数来读取文件大小并实行下载操作。
大约的公文下载只供给动用HTML的连天标识<a>,并将质量href的USportageL值钦赐为下载的文本就能够。

<a href=” /download/book.rar”>下载文件</a>

文件下载,只可以管理局地浏览器无法暗许知别的MIME类型文件,例如当访谈book.rar文件时,浏览器并不曾直接展开,而是弹出二个下载提醒框,提示顾客“下载”依旧“展开”等管理格局。但倘使急需下载后缀名称为.html的网页文件、图片文件及PHP程序脚本文件等,使用这种连接情势,则会将文件内容一贯出口到浏览器中,并不会提示客商下载。
为了升高文书的安全性,不指望在<a>标签中付出文件的链接,则必需向浏览器发送要求的头消息,以布告浏览器将在实行下载文件的拍卖。PHP使用header()函数发送网页的尾部音信给浏览器,该函数接收一个头音信的字符串作为参数。文件下载必要发送的头新闻包含以下三片段,通过调用贰遍header()函数完结。以下载图片test.gif为例,须求发送的头音信的所示:
header(‘Content-Type:imge/gif'); //发送钦定文件MIME类型的头音讯
header(‘Content-Disposition:attachment; filename=”test.gif”‘); //发送描述文件的头消息,附件和文书名
header(‘Content-Length:3390′); //发送钦命文件大小的音讯,单位字节

只要经过上面的代码达成文件下载,只可以处理局地浏览器没办法私下认可知其他MIME类型文件,比如当访谈book.rar文件时,浏览器并未一直展开,而是弹出一个下载提醒框,提示客户“下载”依然“展开”等管理形式。但借使急需下载后缀名称为.html的网页文件、图片文件及PHP程序脚本文件等,使用这种连接格局,则会将文件内容一向出口到浏览器中,并不会提示顾客下载。
为了升高文书的安全性,不指望在<a>标签中付出文件的链接,则必需向浏览器发送要求的头音信,以文告浏览器将在举办下载文件的拍卖。PHP使用header()函数发送网页的底部信息给浏览器,该函数接收三个头音讯的字符串作为参数。文件下载供给发送的头新闻包含以下三片段,通过调用一遍header()函数完结。以下载图片test.gif为例,须要发送的头音讯的代码如下所示:

一经采纳header()函数向浏览器发送了那三服装音讯,图片test.gif就不会一向在浏览器中显得,而让浏览器将该文件产生下载的款型。在函数header()中,“Content-Type”钦点了文本的MIME类型,“Content_Disposition”用于文书的汇报,值“attachment; filename=”test.gif””表达那是二个附属类小部件,并且钦赐了下载后的文件名,“Content_Length”则交由了被下载文件的轻重。
设置完尾部音讯之后,供给将文件的内容输出到浏览器,以便进行下载。能够利用PHP中的文件系统函数将文件内容读抽出来后,间接出口给浏览器。最低价的是接纳readfile()函数,将文件内容读收取来直接出口。下载文件test.gif的所示:
<?php
$filename = "test.gif";
header('Content-Type:image/gif'); //钦命下载文件类型
header('Content-Disposition: attachment; filename="'.$filename.'"'); //内定下载文件的叙说
header('Content-Length:'.filesize($filename)); //钦点下载文件的分寸

 代码如下

//将文件内容读抽取来并平昔出口,以便下载
readfile($filename);
?>

header(‘Content-Type:imge/gif’); //发送钦定文件MIME类型的头音信
header(‘Content-Disposition:attachment; filename=”test.gif”‘); //发送描述文件的头音讯,附属类小部件和文书名
header(‘Content-Length:3390′); //发送钦赐文件大小的音信,单位字节

 

假诺使用header()函数向浏览器发送了那三服装消息,图片test.gif就不会直接在浏览器中突显,而让浏览器将该公文形成下载的样式。在函数header()中,“Content-Type”钦定了文本的MIME类型,“Content_Disposition”用于文书的陈诉,值“attachment; filename=”test.gif””表达那是一个附属类小部件,并且钦赐了下载后的文件名,“Content_Length”则交由了被下载文件的高低。
安装完尾部音信之后,须求将文件的内容输出到浏览器,以便进行下载。可以利用PHP中的文件系统函数将文件内容读抽取来后,直接出口给浏览器。最有助于的是选用readfile()函数,将文件内容读收取来直接出口。下载文件test.gif的代码如下所示:

您或然感兴趣的作品:

  • php文件下载实例代码
  • php强制文件下载的自定义函数代码
  • php文件下载(header函数用法)
  • php完成公文下载实例代码
  • php header函数文件下载时平昔提示保存
  • php帮忙断点续传的文件下载类(附源码)
  • php大文件下载代码(协理断点续传)
  • php文件下载代码(多浏览器包容、协助普通话文件名)
  • php文件下载的函数(帮忙二种格式)
  • php文件下载类(支持各类文件类型)
  • php header函数完毕文件下载的实例代码

地点倘使遇上普通话名字就能够不可能符合规律下载了,对于华语名字下载文件笔者又找到三个文书下载实例代码

<?php
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
$filename = "test.gif";
header('Content-Type:image/gif'); //钦赐下载文件类型
header('Content-Disposition: attachment; filename="'.$filename.'"'); //钦点下载文件的叙说
header('Content-Length:'.filesize($filename)); //内定下载文件的高低
 
//将文件内容读收取来并向来出口,以便下载
readfile($filename);
?>

地点要是高出中文名字就能够不可能不奇怪下载了,对于华语名字下载文件作者又找到二个文书下载实例代码

 代码如下

<?php
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()函数实行编码调换
$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)能够把缓冲区内最后剩下的数目输出到磁盘文件中,并释放文件指针和有关的缓冲区

本文由金沙澳门官网送注册58发布于关于计算机,转载请注明出处:PHP实现文件的下载实例代码,php实现文件下载代

关键词: