前台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 '\r\n' 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); ?>

PHP 文件下载流程的更多相关文章

  1. C#文件下载流程

    private bool DownloadPicture(string picUrl, string savePath, int timeOut)         {             bool ...

  2. FastDFS初步认识--上传下载流程介绍

    什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用 F ...

  3. FastDFS文件上传和下载流程

    文件上传流程 客户端上传文件后存储服务器将文件 ID 返回给客户端,此文件 ID 用于以后访问该文件的索引信息.文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名.  组名:文件上传后所在的 ...

  4. centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置

    前言: 以前的项目上传的文件都是保存到本地或者是局域网内的共享文件夹下,由于数据量,服务器的负载均衡(分机的某些图片无法访问的问题处理)等因素的情况下,就想到用fastdfs来文件管理,花了几天时间硬 ...

  5. FastDFS+Nginx(单点部署)事例

    FastDFS是由淘宝的余庆先生所开发,是一个轻量级.高性能的开源分布式文件系统,用纯C语言开发,包括文件存储.文件同步.文件访问(上传.下载).存取负载均衡.在线扩容.相同内容只存储一份等功能,适合 ...

  6. FastDFS搭建及java整合代码【转】

    FastDFS软件介绍 1.什么是FastDFS FastDFS是用C语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高 ...

  7. 19.fastDFS集群理解+搭建笔记

    软件架构理解 1FastDFS介绍 1.1什么是FastDFS FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并 ...

  8. FastDFS基本结构(转)

    0.简介 FastDFS是基于互联网应用的开源分布式文件系统,主要用于大中型网站存储资源文件,如图片.文档.音频.视频等.FastDFS采用类似GFS的架构,用纯C语言实现,支持Linux.FreeB ...

  9. [转]分布式文件系统FastDFS架构剖析

    [转]分布式文件系统FastDFS架构剖析 http://www.programmer.com.cn/4380/ 文/余庆 FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实 ...

随机推荐

  1. Eclipse中修改Web项目的URL访问路径

    背景 访问路径,也就是指在浏览器中访问该web系统时的根路径,比如http://localhost:8080/xxxx/index.jsp  这里的xxxx,也就是request.getContext ...

  2. 关于Hash集合以及Java中的内存泄漏

    <学习笔记>关于Hash集合以及Java中的内存泄漏 标签: 学习笔记内存泄露hash 2015-10-11 21:26 58人阅读 评论(0) 收藏 举报  分类: 学习笔记(5)  版 ...

  3. Log4Net使用方法

    项目里都会用到日志记录..特别是在本地跑的欢畅..一上服务器就嗝屁的时候..日志会帮你大忙.. Log4net算是一种应用的最广泛的日志记录方式了..下面来简略的说下他的用法.. 先下载log4net ...

  4. tar命令的详细解释

    tar命令的详细解释 标签: linuxfileoutputbashinputshell 2010-05-04 12:11 235881人阅读 评论(12) 收藏 举报  分类: linux/unix ...

  5. Struts2验证框架实例

    今天写了个Struts验证框架的实例,总算把验证框架弄清楚了. 上一篇Struts实例的action没有继承ActionSupport类,虽然也可以实现action的功能,但是却不能应用Struts提 ...

  6. hibernate4连接mysql自动创建表之错误

    我在学习Hibernate的过程中,遇到了这样一个错误:JUnit测试通过,但是数据库中却没有创建一个表,控制台的错误信息如下: HHH000388: Unsuccessful: create tab ...

  7. 整理的mysql优化内容

    1,当只要一行数据时使用 LIMIT 1如果明确只取一条数据,要加上limit 1; 2,避免 SELECT *,根据需要获取字段应该养成一个需要什么就取什么的好的习惯. 3,使用 ENUM 而不是 ...

  8. PHP常用的一些正则表达式

    附一些常用的正则运算: 验证数字:^[0-9]*$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数字:^\d{m,n}$验证零和非零开头的数字:^(0|[1-9][0- ...

  9. hdu4975 A simple Gaussian elimination problem.(正确解法 最大流+删边判环)(Updated 2014-10-16)

    这题标程是错的,网上很多题解也是错的. http://acm.hdu.edu.cn/showproblem.php?pid=4975 2014 Multi-University Training Co ...

  10. wtforms 使用

    wtforms是一个表单模板库, 下面以修改密码表单为例简单说明其用法. 我们可以用python代码定义form的基本元素, 比如用户名/邮箱, 并给定各个元素的validation条件. 然后在re ...