php实现简单文件下载的方法
本文实例讲述了php实现简单文件下载的方法。分享给大家供大家参考。具体如下:
这里介绍的php文件下载代码,只是简单实现了一张图片的下载功能,还不完善,最好是封装到一个类里,或是采用函数调用。感兴趣的朋友可以在此基础上加以完善!
php文件下载代码如下:
<?php $file_name = "2.jpg";//需要下载的图片 define("SPATH","/php/image/");//存放图片的相对路径 $file_sub_path = $_SERVER['DOCUMENT_ROOT'];//网站根目录的绝对地址 $file_path = $file_sub_path.SPATH.$file_name;//图片绝对地址,即前面三个连接 //判断文件是否存在 if(!file_exists($file_path)){ echo "该文件不存在"; return; } $fp = fopen($file_path,"r");//打开文件 $file_size = filesize($file_path);//获取文件大小 /* *下载文件需要用到的header */ 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;//这里如果不echo,只会下载到0字节的文件 } fclose($fp); ?>
希望本文所述对大家的php程序设计有所帮助。
相关推荐
-
解决PHP超大文件下载,断点续传下载的方法详解
最近导出的时候出现一个php内存溢出的问题,原因就是在于下载的时候读取生成的临时文件过大,PHP内存无法容纳,一开如是想到更改PHP内存限制,但是这个只是一个缓兵之计,于是想到了另外一个方法是把文件分次读取,并下载. 以下是源代码: 复制代码 代码如下: <?php $sourceFile = "1.tmp"; //要下载的临时文件名 $outFile = "用户订单.xls"; //下载保存到客户端的文件名 $file_extension = strtolo
-
php控制文件下载速度的方法
本文实例讲述了php控制文件下载速度的方法.分享给大家供大家参考.具体实现方法如下: <?php /* * set here a limit of downloading rate (e.g. 10.20 Kb/s) */ $download_rate = 10.20; $download_file = 'download-file.zip'; $target_file = 'target-file.zip'; if(file_exists($download_file)){ /* header
-
PHP实现文件下载断点续传详解
如果我们的网站提供文件下载的服务,那么通常我们都希望下载可以断点续传(Resumable Download),也就是说用户可以暂停下载,并在未来的某个时间从暂停处继续下载,而不必重新下载整个文件. 通常情况下,Web服务器(如Apache)会默认开启对断点续传的支持.因此,如果直接通过Web服务器来提供文件的下载,可以不必做特别的配置,即可享受到断点续传的好处.由于这些文件直接通过Web服务器来提供下载,后端脚本无法对这个下载过程进行控制.这对于仅提供公开.静态文件的网站来说不是问题,但对于需要
-
php实现文件下载功能的几个代码分享
一个简单的php文件下载源代码,虽不支持断点续传等,但是可以满足一些常用的需求了.php下载文件其实用一个a标签就能实现,比如 <a href="web/magento-1.8.1.0.zip">magento-1.8.1.0.zip</a> .但是遇到一些浏览器能识别的格式,比如.txt,.html,.pdf等,再用<a href="web/abc.txt">abc.txt</a> 想必也知道会发生什么了. 复制代码
-
php利用header函数实现文件下载时直接提示保存
复制代码 代码如下: <?php $filename = '路径+实际文件名'; //文件的类型 header('Content-type: application/pdf'); //下载显示的名字 header('Content-Disposition: attachment; filename="保存时的文件名.pdf"'); readfile("$filename"); exit(); ?> 下面是网上常用的方法 复制代码 代码如下: if (is
-
Php中文件下载功能实现超详细流程分析
客户端从服务端下载文件的流程分析: 浏览器发送一个请求,请求访问服务器中的某个网页(如:down.php),该网页的代码如下. 服务器接受到该请求以后,马上运行该down.php文件 运行该文件的时候,必然要把将要被下载的文件读入内存当中(这里是圣诞狂欢.jpg这张图片),这里通过fopen()函数完成该动作 注意:任何有关从服务器下载的文件操作,必然需要先在服务端将文件读入内存当中 现在文件已经在内存当中了,这是需要从内存当中读取文件,通过fread()函数完成该动作 需要注意的是,如果文件较
-
PHP实现文件下载详解
1.php下载原理图 2.文件下载源码: 复制代码 代码如下: <?php $file_name="哈哈.jpg";//需要下载的文件 $file_name=iconv("utf-8","gb2312","$file_name"); $fp=fopen($file_name,"r+");//下载文件必须先要将文件打开,写入内存 if(!file_exists($file_name)){//判断文件是否
-
php实现的支持断点续传的文件下载类
本文实例讲述了php实现的支持断点续传的文件下载类及其用法,是非常实用的技巧.分享给大家供大家参考.具体方法如下: 通常来说,php支持断点续传,主要依靠HTTP协议中 header HTTP_RANGE实现. HTTP断点续传原理: Http头 Range.Content-Range() HTTP头中一般断点下载时才用到Range和Content-Range实体头, Range用户请求头中,指定第一个字节的位置和最后一个字节的位置,如(Range:200-300) Content-Range用
-
php限制文件下载速度的代码
有时候你会出于某种目的而要求把下载文件的速度放慢一些,例如你想实现文件下载进度条功能.限制下载速度最大的好处是节省带宽,避免瞬时流量过大而造成网络堵塞.本文将和你分享如何通过php代码来实现限制文件的下载速度. 首先来看看利用php限制文件下载速度的代码: <?php // 将发送到客户端的本地文件 $local_file='abc.zip'; // 文件名 $download_file='your-download-name.zip'; // 设置下载速率(=> 31.2 kb/s) $do
-
Flash两个上传示例ASP和PHP(原文件下载,包括后台程序)
Flash两个上传示例ASP和PHP(原文件下载,包括后台程序) [flash upload for asp] 下载此文件 [flash upload for php] 下载此文件
-
php文件下载处理方法分析
本文实例讲述了php文件下载的处理方法.分享给大家供大家参考.具体分析如下: php能够处理多种条件的文件下载,先来看下面示例: <?php header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=testname.jpg"); readfile("images/test.jpg"); ?>
-
php实现文件下载代码分享
简单的文件下载只需要使用HTML的连接标记<a>,并将属性href的URL值指定为下载的文件即可.所示: <a href="http://www.jb51.net/download/book.rar">下载文件</a> 如果通过上面的代码实现文件下载,只能处理一些浏览器不能默认识别的MIME类型文件,例如当访问book.rar文件时,浏览器并没有直接打开,而是弹出一个下载提示框,提示用户"下载"还是"打开"等处
-
PHP+Mysql+jQuery文件下载次数统计实例讲解
项目中我们需要统计文件的下载次数,用户每下载一次文件,相应的下载次数加1,类似的应用在很多下载站中用到.本文结合实例使用PHP+Mysql+jQuery,实现了点击文件,下载文件,次数累加的过程,整个过程非常流畅. 准备工作 本实例需要读者具备PHP.Mysql.jQuery以及html.css等相关的基本知识,在开发示例前,需要准备Mysql数据表,本文假设有一张文件下载表downloads,用来记录文件名.保存在文件服务器上的文件名以及下载次数.前提是假设下载表中已存在数据,这些数据可能来自
-
PHP文件下载类
复制代码 代码如下: <? //==================================================== // 使用范例: // $download=new download('php,exe,html',false); // if(!$download->downloadfile($filename)) // { // echo $download->geterrormsg(); // }
-
php实现文件下载简单示例(代码实现文件下载)
复制代码 代码如下: public function downloads($name){$name_tmp = explode("_",$name);$type = $name_tmp[0];$file_time = explode(".",$name_tmp[3]);$file_time = $file_time[0];$file_date = date("Y/md",$file_time);$file_dir = SITE_PATH.&quo
-
PHP连接SQLSERVER 注意事项(附dll文件下载)
环境: - Apache 2.2.6 - PHP 5.2.5 - SQL Server 2005 - Windows XP SP2 步骤: 1. 首先按通常做法配置好PHP5连接MS SQL Server 2. 下载正确版本的 ntwdblib.dll (2000.80.194.0),注意这个版本号,不是这个版本的dll 不起作用啊,刚开始搞了好久才发现这个问题,切记... 地址: http://www.jb51.net/dll/ntwdblib.dll.html 3. 覆盖 apache2.2
-
PHP通过header实现文本文件下载的代码
这就是今天讨论的主要问题.PHP帮助文档里面关于PHP通过header触发下载的说明比较简单,而网上关于此方面的文章也少的可怜,有很多文章都无法实现所需要的效果.今天我也来谈一下这个方面的话题,如果你感觉比网上的某些文章有所改进,那我就很知足了. 如果从准确的角度来说,那PHP文档是最准确的,因为它很简练的列出了实现文本类文件触发下载所需要的三条语句,以PDF为例就是: 复制代码 代码如下: // We'll be outputting a PDF header('Content-type: a
-
php实现文件下载实例分享
举一个案例: 复制代码 代码如下: <?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name);$file_path = iconv("utf-8","gb23
随机推荐
- ckeditor 简单配置方法
- Java连接sqlserver2008数据库代码
- .NET中的IO操作之文件流用法分析
- php学习 字符串课件
- Python 文件操作技巧(File operation) 实例代码分析
- C++ 单例模式的详解及实例
- android给RecyclerView加上折叠的效果示例
- htm页面中<a name>加name和id的冲突附解决方法
- 使用Javascript实现选择下拉菜单互移并排序
- jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
- jquery中通过父级查找进行定位示例
- 三种方式实现瀑布流布局
- IP安全策略 关闭端口说明
- C/C++中运算符的优先级、运算符的结合性详解
- jQuery UI仿淘宝搜索下拉列表功能
- php同时使用session和cookie来保存用户登录信息的实现代码
- Android模拟强制下线通知功能实例代码
- django 快速启动数据库客户端程序的方法示例
- php文件包含的几种方式总结
- Python Scapy随心所欲研究TCP协议栈