文档章节

基于ThinkPHP3.2.3下载文件(几百M以上的)

botkenni
 botkenni
发布于 2017/01/16 18:16
字数 331
阅读 210
收藏 0
控制器部分 
   function downfile($fileurl='http://www.fuhuaqi.com/Upload/activity/mongo.rar')
    {
//        下载本地方式一:会受到文件大小限制
//        ob_start();
//        $filename=$fileurl;
//        $date=date("Ymd-H:i:m");
//        header( "Content-type:  application/octet-stream ");
//        header( "Accept-Ranges:  bytes ");
//        header( "Content-Disposition:  attachment;  filename= {$date}.zip");
//        $size=@readfile($filename);
//        header( "Accept-Length: " .$size);

//        下载本地方式二:目前下载500M左右的都没问题,就是时间太慢
        set_time_limit(0);
        ini_set('memory_limit', '512M');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename='.basename($fileurl));
        header('Content-Transfer-Encoding: binary');
        ob_end_clean();
        $size = readfile($fileurl);
        header( "Accept-Length: " .$size);
    }

方法三:下载之后在指定的地方,但是没有返回,成功之后只是一个空页面,使用TP的HTTP类

//下载之后在指定的地方,但是没有返回,只是一个空页面
    public function downmy()
    {

        $tu = time() . 'mygoods' . ".zip";
        $Http = new Http();
        $Http->curlDownload("http://www.fuhuaqi.com/Upload/activity/111111.zip", "./Upload/activity/".$tu);
        $url = "http://www.fuhuaqi.com/Upload/activity/".$tu;
        return $url;
    }

视图部分

<td><a class="fa fa-chevron-circle-down" href="__ROOT__/Admin/Bpapply/downfile">下载</a></td>

效果

修改之后:

function downfile($fileurl='http://www.fuhuaqi.com/Upload/activity/mongo.rar')
{

    ob_start();
    set_time_limit(0);
    ini_set('memory_limit', '512M');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($fileurl));
    header('Content-Transfer-Encoding: binary');
    ob_end_clean();
    $size = readfile($fileurl);
    header( "Accept-Length: " .$size);
}

修改1.0.1

function downfile()
{
    ob_start();
    $id = I('get.id');
    $bpapplys = D('Bpapply')->selectOne($id);
    //上线后需要修改路径为绝对路径,否则下载不全
    $fileurl="http://www.fuhuaqi.com/Upload/bpapply/".$bpapplys['bp_bpimg'];
    set_time_limit(0);
    ini_set('memory_limit', '512M');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($fileurl));
    header('Content-Transfer-Encoding: binary');
    ob_end_clean();
    $size = readfile($fileurl);
    header( "Accept-Length: " .$size);
}

© 著作权归作者所有

botkenni
粉丝 20
博文 429
码字总数 444521
作品 0
西城
程序员
私信 提问
一元云购、一元夺宝、一云购源码出售。

以最低的成本搭建微信一元云购平台,一元云购,一元夺宝,一云购源码出售。 非市面流通的源码,全新开发。 系统内核使用ThinkPHP3.23框架开发。 注意: 1. 只有移动端版。 2. 关键函数文件f...

go522000
2016/06/15
43
0
精简压缩优化 Docker 镜像几百MB

转载:http://www.dockerinfo.net/3328.html 介绍 前段时间网易蜂巢曾经推出蜂巢 Logo T恤,用的正是 Docker 镜像制作,最神奇的是,它最终的镜像大小只有 585字节。 $ docker images grep h...

a1010256340
2018/04/26
0
0
利用pandas+python制作100G亚马逊用户评论数据词云

Part 1: 你真的认识大数据吗? 我周围很多人,开口闭口都是云计算、大数据。你要是真的去追究什么事大数据,什么级别的数据才叫做大,那么他们多半是答不上来的。我见过好几个人,处理过的最...

YoghurtIce
2015/12/18
0
0
Walmart沃尔玛订单产品管理系统

【业务需求】 在此描述您的业务要求:利用https://github.com/fillup/walmart-partner-api-sdk-php 这个sdk包,开发一个简单易用的订单、产品、价格、库存管理系统。可以轻松发布产品到沃尔玛...

ecworld
2017/05/03
199
0
【URLOS应用开发基础课】docker官方系统镜像Alpine入门教程

我们在进行URLOS应用开发时,经常会用到一些基础系统镜像,如:ubuntu、CentOS、Debian等,我们可以通过docker pull命令直接拉取官方镜像。 以上是从docker官方拉取的ubuntu18.04镜像,我们可...

低调的维斯
04/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
15
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
15
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部