牛骨文教育服务平台(让学习变的简单)
博文笔记

php开发 文件下载类

创建时间:2017-06-24 投稿人: 浏览次数:237

最简单的六步    1.$fileName = iconv("UTF-8","GB2312",$fileName);    //中文文件名解析

                            2. header("content-type:text/html;charset-utf-8");          //设置字符集

                            3. header("content-disposition: attachment; filename=".$fileName);      //告诉浏览器,这是一个附件

                            4. $fileSize = filesize($filePath);   //获取文件的大小

                            5. header("content-length:".$fileSize);     //告诉浏览器文件的大小

                            6. readfile($filePath);   //读取出内容


文件下载类      public  function downFile()
                         {  

                                    header("Content-Type:text/html; charset=gb2312");  
                                    if(isset($_GET["file_url"]))  
                                    {  
                                               $filePath =$_GET["file_url"];
                                               $name=basename($filePath);  
                                    
                                                $file_name=$_SERVER["DOCUMENT_ROOT"]."/".$filePath;  
                                                $file_name=iconv("utf-8","gb2312",$file_name);//中文转码  
                                                //1.打开文件  
                                                 if(!file_exists($file_name)){  
                                                           echo "文件不存在";  
                                                  } else {  
                                                           $fp=fopen($file_name,"rb");  
                                                           ob_clean();  
                                                           //2、获取文件大小  
                                                           $file_size=filesize($file_name);  
                                                           header("Content-type: application/octet-stream");//告诉浏览器返回的是文件数据  
                                                           header("Accept-Ranges: bytes");//以字节方式返回  
                                                           header("Accept-Length: $file_size");//  
                                                           //3.客户端弹出的对话框的文件名称  
                                                           header("Content-Disposition: attachment; filename=".$name);  
                                                            //4、读取到缓存  
                                                           $buffer=1024;  
                                                           $file_count=0;  
                                                            while(!feof($fp) && $file_size-$file_count>0)//文件未到结尾  
                                                            {  
                                                                     $file_data=fread($fp,$buffer);  
                                                                     $file_count+=strlen($data);  
                                                                     echo $file_data;  
                                                             }  
                                                             //6.关闭  
                                                             fclose($fp);  
                                                   }
                                      }else{
                                                echo "文件不存在";
                                     }  
                            }

      

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。