PHP学习笔记三十八【下载】

<?php
   //演示下载一个图片
   $file_name="SunSet.jpg";
   
   $file_name=iconv("utf-8","gb2312",$file_name); //对文件名进行处理,因为php对中文支持不够友好【把utf-8 转为 gb2312】
   //1.打开文件,先判断是否存在
   if(!file_exists($file_name)){
        echo "文件不存在";
         return    ;    
   }
   $fp=fopen($file_name,"r");//以只读的方式打开文件 
  $file_size=filesize($file_name);
   echo "文件大小:".filesize($file_name);
   // 输入文件标签
    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_size-$file_count>0))//feof用于判断文件是否结束
    {
      $file_data=fread($fp,$buffer);//读取数据
      $file_count+=$buffer; //统计读取了多少字节
      //把部分数据回送给浏览器
      echo $file_data;
    }
    //关闭文件
    fclose($fp);
?>
    

 

posted @ 2014-10-26 22:15  编程猴子  阅读(215)  评论(0编辑  收藏  举报