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);

?>

    

 

你可能感兴趣的:(学习笔记)