本文目录一览:
- 1、PHP下载文件
- 2、php实现文件下载代码
- 3、PHP如何下载文件
- 4、怎样才能用PHP语言实现网页中的下载文件功能
- 5、PHP中怎么用代码实现文件下载
- 6、如何实现php点击时下载txt文件功能? 详细
PHP下载文件
可以直接在百度或者搜狗上面搜索
PHP下载文件
,点进去有个下载的按钮,只要电脑上面装了迅雷,点下载右键就会有迅雷下载了;
php实现文件下载代码
简单的文件下载只需要使用HTML的连接标记a,并将属性href的URL值指定为下载的文件即可。所示:
a href=”.*****.net/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′); //发送指定文件大小的信息,单位字节
如果使用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);
?
上面如果碰到中文名字就会无法正常下载了,对于中文名字下载文件我又找到一个文件下载实例代码
?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)可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区
PHP如何下载文件
// 下载文件 文件用绝对路径
ob_clean();
header('Pragma: public');
header('Last-Modified:'.gmdate('D, d M Y H:i:s') . 'GMT');
header('Cache-Control:no-store, no-cache, must-revalidate');
header('Cache-Control:pre-check=0, post-check=0, max-age=0');
header('Content-Transfer-Encoding:binary');
header('Content-Encoding:none');
header('Content-type:multipart/form-data');
header('Content-Disposition:attachment; filename="'.$filename.'"'); //设置下载的默认文件名
header('Content-length:'. filesize($dfile)); //要下载的文件
$fp = fopen($dfile, 'r');
while(connection_status() == 0 $buf = @fread($fp, 8192)){
echo $buf;
}
fclose($fp);
@unlink($dfile);
@flush();
@ob_flush();
exit();
怎样才能用PHP语言实现网页中的下载文件功能
?php
/*
$file------文件名
$_SERVER['DOCUMENT_ROOT']-----服务器跟目标
down------自定义下载文件的文件夹
获取文件在文件夹里面的位置
必须是绝对路径
Content-Type: application/force-download 强制浏览器下载
*/
$file="xxxx.rar";
$file=$_SERVER['DOCUMENT_ROOT']."/down/".$file ;
if(is_file($file)) {
header("Content-Type: application/force-download");
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=".basename($file));
readfile($file);
exit;
}else{
echo "文件不存在!";
exit;
}
?
PHP中怎么用代码实现文件下载
CI框架:
前台:a.php a href="download/export"download/a
后台:download.php
function export(){
//把js,css的路径文件名填充下面的$url和$fname就可以了
//至于html文件,先在后台生成一个html文件,然后下载就可以了
$fname=date('YmdHis').'.xls';
$url='./xls/'.$fname;
$this-excel_m-write($url);
$file = fopen($url,"r"); // 打开文件
// 输入文件标签
header('Content-Encoding: utf-8');
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length: ".filesize($url));
header('Content-Transfer-Encoding: binary' );
header("Content-Disposition: attachment; filename=" .$fname); //以真实文件名提供给浏览器下载
header('Pragma: no-cache');
header('Expires: 0');
//输出文件内容
echo fread($file,filesize($url));
fclose($file);
}
如何实现php点击时下载txt文件功能? 详细
php 点击下载txt 文件 由于现在的浏览器已经可以识别格式为txt 的文档格式,所以如果只是给txt 文档做一 个文字链接的话,可能只是打开一个新窗口显示txt 文件的内容,并不能实现点击下载的目 的。We have to do something else. 当然这个问题的解决办法也可以是你将你的txt 文件改名为浏览器不认识的文件,比如 rar,这样的话点击,浏览器不认识就只好让用户下载了。 下面这个文件就是通过设置header 设置文档的格式来实现点击下载的目的,将上个页面传 递过来的文件点击可以下载。 接着第二个header函数设置了要下载的文件,注意这里filename是不包含路径的文件名, 所以用basename 过滤掉路径名。这个 filename 的值将来就是点击下载后弹出对话框里面的 文件名,如果带路径的话,弹出对话框的文件名就是未知的,这个要注意,我就犯了这个错 误,后来凭 经验自己改了,居然对了。 最后就是 readfile,将文件流输出到浏览器,这样就实现了 txt 文件的下载,其他类型的类似。