php实现文件下载简单示例(代码实现文件下载)

 更新时间:2014年03月10日 10:27:16   作者:  
这篇文章主要介绍了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."/data/uploads/$type/$file_date/"; 

if (!file_exists($file_dir.$name)){
 header("Content-type: text/html; charset=utf-8");
 echo "File not found!";
 exit;
} else {
 $file = fopen($file_dir.$name,"r");
 Header("Content-type: application/octet-stream");
 Header("Accept-Ranges: bytes");
 Header("Accept-Length: ".filesize($file_dir . $name));
 Header("Content-Disposition: attachment; filename=".$name);
 echo fread($file, filesize($file_dir.$name));
 fclose($file);
}
}


示例2:代码实现文件下载

一般实现下载都是调用url来下载,但是遇到ie能识别打开的文件就不能用这种方式了,比如下载一个图片、html网页等,这时就需要编程来实现,以下php代码可以解决:

复制代码 代码如下:

<?
if( empty($_GET['FileName'])|| empty($_GET['FileDir'])|| empty($_GET['FileId'])){
    echo'<script> alert("非法连接 !"); location.replace ("index.php") </script>'; exit();
}
$file_name=$_GET['FileName'];
$file_dir=$_GET['FileDir'];
$FileId=$_GET['FileId'];
$file_dir = $file_dir."/";
if   (!file_exists($file_dir.$file_name))   {   //检查文件是否存在 
  echo   "文件找不到"; 
  exit;   
  }   else   { 
$file = fopen($file_dir . $file_name,"r"); // 打开文件
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输出文件内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
exit();
}
?>

相关文章

  • PHP生成唯一订单号的方法汇总

    PHP生成唯一订单号的方法汇总

    前阵子有个电子商务项目,需要生成订单号。当时的考虑很简单,取系统时间加上随机数,或者使用 uniqid() 方法。仔细考虑下上述方法,在顾客购买量少的情况下,订单重复的可能性为零,但是在购买高蜂期生成的订单号重复是很有可能发生的。
    2015-04-04
  • Yii 2.0自带的验证码使用经验分享

    Yii 2.0自带的验证码使用经验分享

    这篇文章主要给大家介绍了关于使用Yii 2.0自带验证码的一些经验,方便新手们快速上手,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • Laravle eloquent 多对多模型关联实例详解

    Laravle eloquent 多对多模型关联实例详解

    Eloquent中一个模型就是一个数据表,数据表之间通常会有关联,多对多关联就是2个表之间相互有很多关联,这篇文章给大家介绍了Laravle eloquent 多对多模型关联实例详解,需要的朋友参考下吧
    2017-11-11
  • php制作简单模版引擎

    php制作简单模版引擎

    模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。
    2016-04-04
  • thinkphp5.1框架模板赋值与变量输出示例

    thinkphp5.1框架模板赋值与变量输出示例

    这篇文章主要介绍了thinkphp5.1框架模板赋值与变量输出,结合实例形式分析了thinkphp5.1框架模板赋值与变量输出基本操作技巧及相关注意事项,需要的朋友可以参考下
    2020-05-05
  • php 实现301重定向跳转实例代码

    php 实现301重定向跳转实例代码

    本文主要介绍php 实现301重定向跳转,通过实例代码让大家更好的理解重定向的方法,有需要的小伙伴可以参考下
    2016-07-07
  • 基于PHP实现发微博动态代码实例

    基于PHP实现发微博动态代码实例

    这篇文章主要介绍了基于PHP实现发微博动态代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • laravel 实现用户登录注销并限制功能

    laravel 实现用户登录注销并限制功能

    今天小编就为大家分享一篇laravel 实现用户登录注销并限制功能,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • CodeIgniter辅助之第三方类库third_party用法分析

    CodeIgniter辅助之第三方类库third_party用法分析

    这篇文章主要介绍了CodeIgniter辅助之第三方类库third_party用法,以CI集成Twig模版为例分析了CodeIgniter集成第三方类库的实现步骤与相关技巧,需要的朋友可以参考下
    2016-01-01
  • thinkPHP分组后模板无法加载问题解决方法

    thinkPHP分组后模板无法加载问题解决方法

    这篇文章主要介绍了thinkPHP分组后模板无法加载问题解决方法,分析了thinkPHP分组后模板无法加载的原因与相应的设置方法,需要的朋友可以参考下
    2016-07-07

最新评论