• PHP 文件下载流程


    前台HTML:

    添加download属性,不打开download.php页面

    <a style='color:blue' href='download.php' download='data/CrawlerID.txt' target=_blank>下载</a>

    download.php

    1:从数据库中导出内容

    2:fread输出到页面

    <?php
        //下载数据
        header('Content-Type:text/html;charset=utf-8');
        $crawlId=$_GET['id'];
        
        //导出sql语句:Select pid,price Into OutFile 'F:/QQPCmgr/Desktop/Data_OutFile.txt' fields terminated by ',' From `t_product`
        //导出文件命名格式Crawl_ID_txt;
        $filePath = "D:/WWW/amazon_crawl_system/data/";//此处给出你下载的文件在服务器的什么地方
        $fileName = "CrawlerID_".$crawlId.".txt";
        
        //删除文件
        if(file_exists($filePath.$fileName)){
            unlink($filePath.$fileName);
        }
        
        include_once('./mysql.php');
        $conndb=new ConnDB();
        $conndb->connect("127.0.0.1","root","root","amazon");
        
        //首先从t_crawl_url表中获取对应的id值,拼接sql语句
        $sql="select id from t_crawl_url where crawl_id=".$crawlId;
        $request=$conndb->queryarr($sql);
        $str='';
        if($request){
            foreach($request as $key => $values){
                $str.="crawl_url_id='".$values['id']."' or ";
            }
            $str=substr($str,0,strlen($str)-4);
            //echo $str;
        }else{
            echo "error";
            exit;
        }
        
        $sql="select pid,price Into OutFile '".$filePath.$fileName."' fields terminated by ',' lines terminated by '
    ' From `t_product` where ".$str;
        
        $request=$conndb->query($sql);
        if($request){
            /*echo "<script> window.location.href='download.php?id=".$crawlId."&file=".$saveFile."';</script>";*/
        }else{
            echo "<script> alert('下载失败');</script>";
            exit;
        }
        
        //此处给出你下载的文件名
        $file = fopen($filePath.$fileName, "r"); //打开文件
        //输入文件标签
        header("Content-type:application/octet-stream ");
        header("Accept-Ranges:bytes ");
        header("Accept-Length:   " . filesize($filePath.$fileName));
        header("Content-Disposition:   attachment;   filename= ".$fileName);
        
        //输出文件内容
        echo fread($file, filesize($filePath . $fileName));
        fclose($file);
        
    
    ?>
  • 相关阅读:
    store 加载异常处理与加载信息提示
    jQuery和ExtJS的timeOut超时问题和event事件处理问题
    Virtualbox虚拟机安装CentOS6.5图文详细教程
    虚拟机
    20180104 wdcp中的mysql重启不成功
    MySQL取得某一范围随机数(MySQL随机数)
    安装lszrz,用于上传文件
    cpu占用高 20180108
    怎么实时查看mysql当前连接数
    数据库SQL优化大总结之 百万级数据库优化方案
  • 原文地址:https://www.cnblogs.com/zeze/p/5896635.html
Copyright © 2020-2023  润新知