当前位置:首页 » 编程语言 » php下载类

php下载类

发布时间: 2023-01-10 00:51:50

A. php实现文件下载代码

简单的文件下载只需要使用HTML的连接标记<a>,并将属性href的URL值指定为下载的文件即可。所示:

<a href=”http://www.*****.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)可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区

B. php超大下载类 怎么使用

Shereaza
在国外评价极高并且相当流行的P2P软件(简称Raza),它集合了eDonkey、Guntella(1和2)和BT四种流行P2P网络类型,并可以用于Http下载,在以后的版本将会支持ftp下载,由于其优秀的界面(支持换肤)、简洁的操作以及极强的可制定性,所以在国外广为流传,其评价已跃居所有P2P软件的前5之列,并且许多P2P的下载站点已将其指定为BT的官方下载工具。
Raza为完全免费的软件,并且官方承诺保证不含有任何间谍软件和广告软件。

Free Download Manager
一个完全免费的多功能的下载和管理工具。支持多线程下载,支持计划任务下载,支持以目录列表查看检索站点内容,支持下载网页内容、图象、文件,支持抓取网页上的链接,支持下载整个网站内容(可设定下载子目录的层次深度),理论上可下载超过1000 层的子目录网页和图象等内容。支持捕获网页风格样式(以 CSS 内容保存),支持多种格式网页抓取,包括:html、shtm、shtml、phml、dhtml、php、hta、htc、cgi、asp、htm 等等……亦可自己设定格式,可在线以“站点浏览器”查看目标网站的子目录中的内容,支持三种下载通讯模式,支持断点续传,可显示服务器是否支持续传并可设定是否重新下载或覆盖。
Free Download Manager 是一个强大的下载工具,支持多线程分割下载,
它还是一个下载加速器,官方宣传它在某些特定情况下,使用最佳模式下载时,可将下载速度提高到高达 600 % 的速率!支持定时下载和定时挂断连接,下载完成后断开连接或关闭计算机。

Download Accelerator Plus
一个非常不错的号称能提高下载速度400%左右的下载工具,支持多点续传,可以自动搜索镜像服务器,尽可能地提高下载速度,支持多服务器连接,搭配IE与Nescape使用。文件安装完后不需另外做设定,在浏览器发出下载文件要求时,便会自动启动帮你下载件,并且支持代理服务器,自动拔号等等
软件安装时会提示你是否同步安装SpeedBit的IE工具条,可以选择不安装,请谨慎选择。

uTorrent
很小巧的BT客户端程序,拥有常见的功能,但是不支持UDP的连接协议。内网下载方面也有不错的表现,外网就更不用提了。支持多任务同时下载,支持设置文件下载优先级,可以根据计划任务调整占用的带宽,全局/单个任务的速度限制,快速断点续传机制,支持UPnP,支流行的BT扩展协议,支持用户来源交换,支持DHT最小内存占用仅6MB,当然,也是支持简体中文的,并且完全免费,最近在国内迅速流行。

Orbit Downloader
这个软件可以方便地识别和下载网页中的 Flash 和别的流媒体文件。支持多语言(包括繁、简体中文),在“View->language”中可切换界面显示语言。在下载方式上,它采用了 P2P 来提高下载速度。P2P 除了加速外,也能在一定程度上防止死链接。加上服务器端,下载方式就是 P2SP ,和迅雷一样了。和迅雷不同的是,这个功能是可选项,换句话说,用户可以自行决定启用或关闭 P2P 功能。只是这个软件在国内外用的人似乎都不多,所以就算现在启用 P2P 功能,在加速、防死链接上的作用也不大吧。本工具也是免费的,我曾经进行过推荐,经试用,下载速度还是不错的(虽然较迅雷还是慢了一点点),资源占用很低。

Internet Download Manager(IDM)
(我一直在用,主推)
此工具能够提升你的下载速度最多达5倍,安排下载时程,或续传一半的软件。Internet Download Manager的续传功能可以恢复因为断线、网络问题、计算机当机甚至无预警的停电导致下传到一半的软件。此程序具有动态档案分割、多重下载点技术,而且它会重复使用现有的联机,而不需再重新联机登入一遍。聪明的in-speed技术会动态地将所有设定应用到某种联机类型,以充分利用下载速度。 支持简体中文,但是不是免费的,需要进行破解
本工具经过我亲测,发现下载能力确实十分强大,下载速度上连迅雷都要稍逊一筹,同样,没有任何广告,能够像迅雷一样监视浏览器与剪切板,不过这需要在设置项设置为高级浏览器集成,而且,它支持自己定制下载文件类型与下载网站,支持界面图标更换,总体而言还是很不错的。

LeechGet 2009
一个免费下载工具,功能包括有:下载拖甩区、下载状态图形、下载完成自动关机、剪贴板动作监视、浏览器点选动作监控,几乎所有该有的功能都有了,还有一个具有下载功能的ftp浏览器

C. php一个文件类,里面有一个下载文件的方法,想问一下:那几个header()都是什么意思啊,如果不加它会怎样

$type 1的时候 是下载 2的时候显示图片 不会下载
header的作用就是输出文件前 告诉浏览器 后面发送的是什么类型的文件
如果不加的话 浏览器 就会自己诊断发过来的是什么内容 然后根据系统的编码(这个也可以用header指定)
来解析和确认文件格式 然后根据操作系统的设定决定下载还是显示

D. 怎么下载PHP类型的文件

BT6.0 是下BT文件 torrent类型文件
PHP用影音传送带 下或网际快车

E. php 下载类提示获取文件类型出错

mime_content_type返回指定文件的MIME类型,
用法:echo mime_content_type('php.gif') ;
输出:image/giftext/plain

但是php 5.3.0已经将该函数废弃。如果仍想使用此函数,那么可以对php进行配置启用magic_mime扩展。

F. php这一类的种子要用什么下载工具下载呢!

PHP是动态的一种网页编程语言,具有超级隐蔽性。
你所指的是一个页面里面所指引的下载内容。一般在将要指引前加载登陆账号,扣点之类的语句。一般是无法绕过去的。
如果是BT种子的话,文件名是*.torrent的,
这类用比特精灵一些专业的BT下载工具下载,迅雷也可以,有些软件封了迅雷。种子我是没见过PHP的。

G. 能给个很好的PHP超大文件下载类么 支持300m以上的 谢谢 详细使用方法给写上我要和数据库链接的

PHP,PHP3是包含有PHP脚本的HTML网页。可以用记事本直接打开。

如果你不是下载的网络程序代码,那么可能是在下载影音、软件、论坛附件的时候因为使用下载工具导致权限不足无法打开所导致。

就是说你下的并不是字典,而是一个网页。

H. php利用表头来下载文件,利用header()类下载文件

手册上不都有吗:

<?php
$file='monkey.gif';

if(file_exists($file)){
header('Content-Description:FileTransfer');
header('Content-Type:application/octet-stream');
header('Content-Disposition:attachment;filename='.basename($file));
header('Content-Transfer-Encoding:binary');
header('Expires:0');
header('Cache-Control:must-revalidate');
header('Pragma:public');
header('Content-Length:'.filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>
热点内容
大华5032录像机怎么配置硬盘 发布:2025-07-10 17:19:20 浏览:114
c语言条形码 发布:2025-07-10 17:18:32 浏览:895
移动垃圾压缩设备 发布:2025-07-10 17:17:45 浏览:546
超级访问沈傲君 发布:2025-07-10 17:06:33 浏览:693
安卓的手机来电闪光灯在哪里 发布:2025-07-10 16:49:02 浏览:836
androidstudio导入as项目 发布:2025-07-10 16:43:37 浏览:538
c语言中编译和编辑的差别 发布:2025-07-10 16:43:35 浏览:486
iphone清除缓存软件 发布:2025-07-10 16:20:03 浏览:680
以下所列的c语言常量中错误的是 发布:2025-07-10 16:19:00 浏览:852
怎么给安卓应用重命名 发布:2025-07-10 16:18:01 浏览:1001