方式一、
public function downApkFile(){
$path = Env::get('root_path')."apk/"; //路径
$file_name = "a.apk"; //下载文件名
//中文需要转码
$fileAdd = iconv('UTF-8', 'GB2312', $path . $file_name);
//检查文件是否存在
if (!file_exists($fileAdd) || !explode(".apk", $fileAdd) || !is_file($fileAdd)) {
$this->error('文件不存在');
} else {
//告诉浏览器这是一个文件流格式的文件(app)
Header("Content-type: application/vnd.android.package-archive");
//用来告诉浏览器,文件是可以当做附件被下载,下载后的文件名称为$file_name该变量的值。
header('Content-disposition: attachment; filename=' . iconv('UTF-8', 'GB2312', $file_name)); //文件名
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Transfer-Encoding: binary"); //告诉浏览器,这是二进制文件
//这里会告诉请求方,文件大小
header('Content-Length: ' . filesize($fileAdd)); //告诉浏览器,文件大小
//读取文件内容并直接输出到浏览器
@readfile($fileAdd);
exit ();
}
}
原文链接:https://www.cnblogs.com/lizhanqi/p/9816113.html(感谢分享)
方式二、
直接访问apk文件,比如.apk文件在项目根目录下,直接访问:www.XXX.com/a.apk

PHP 下载apk文件的更多相关文章

  1. 下载apk文件浏览器会直接打开并显示乱码的问题

    今天同事反映他的apk文件在自己的老项目中下载有问题:下载apk文件浏览器会直接打开并显示乱码,在别的项目中就没有问题. 后分析response的content-type发现,老项目的类型是text/ ...

  2. Android项目实战(三十一):异步下载apk文件并安装(非静默安装)

    前言: 实现异步下载apk文件 并 安装.(进度条对话框显示下载进度的展现方式) 涉及技术点: 1.ProgressDialog   进度条对话框  用于显示下载进度 2.AsyncTask     ...

  3. IIS不能下载.apk文件

    IIS服务器不能下载.apk文件的原因:iis的默认MIME类型中没有.apk文件,所以无法下载. 打开IIS服务管理器,找到服务器,右键-属性,打开IIS服务属性: 单击MIME类型下的“MIME类 ...

  4. PHP下载APK文件

    PHP下载APK文件(代码如下) /** * //这里不要随便打印文字,否则会影响输出的文件的 * (例如下载没问题,但是apk安装时候提醒解析安装包错误) * @return array */ pu ...

  5. IIS 服务器支持下载apk 文件

    前不久,在本地IIS文件下部署一个网站,可以下载apk文件,就是测试apk应用升级,发现访问不能下载,原因是IIS没有配置对这种apk文件的处理程序. 解决方案如下所示: 1.打开IIS, 找到MIM ...

  6. nginx转发tomcat请求转成https后页面不能下载apk文件而是直接打开

    访问域名下面的apk文件 https://xxxx/xxx.apk 浏览器没有下载而是直接打开了文件 没有找到问题原因,可能是https的原因,要是用http就可以下载,转发https就有问题 后来是 ...

  7. Debian Nginx 下载 .apk 文件时候报 403 错误 [1]

    一.版本介绍 Degian : 8 jessie Nginx  : 1.6.2 发生时间 : 2018-12-15 二.问题说明 客户浏览器访问Nginx的公开目录中放入了一个.apk文件,公开目录可 ...

  8. 微信浏览器无法下载APK文件的解决方案

    大家是不是经常会遇到微信内点击链接或扫描二维码无法打开指定网页的问题?只要你使用微信转发分享,相信你就一定会遇到,那么打不开的原因很简单了,就是被微信拦截了.这个问题我们只需要实现从微信内直接跳出到外 ...

  9. NetCore2.0无法下载apk文件 IIS设置

    把apk 文件放到网站的wwwroot目录 1.IIS设置MIME类型添加.apk, MIME类型:application/vnd.android.package-archive 2.然后StarUp ...

随机推荐

  1. BIMFACE二次开发【C#系列】

    本系列文章主要介绍使用 C# .ASP.NET(MVC)技术对 BIMFACE 平台进行二次开发,以满足本公司针对建筑行业施工图审查系统的业务需求,例如图纸模型(PDF 文件.二维 CAD 模型.三维 ...

  2. org.springframework.web.util.IntrospectorCleanupListener作用

    回收那些不会主动回收,导致内存泄漏的垃圾,如javabeans

  3. python plt画图横纵坐标0点重合

    # -*- coding: utf-8 -*- import numpy as np import matplotlib.mlab as mlab import matplotlib.pyplot a ...

  4. vue全家桶和react全家桶

    vue全家桶:vue  +  vuex (状态管理)  + vue-router (路由) + vue-resource +axios +elementui react全家桶 : react + re ...

  5. 使用MyBatis的步骤

    1.创建空的Java工程,安装MyBatis依赖 <?xml version="1.0" encoding="UTF-8"?> <projec ...

  6. 蛇形填数(JAVA语言)

    package 第三章; import java.util.Scanner; public class 蛇形填数 { public static void main(String[] args)  { ...

  7. 《C++反汇编与逆向分析技术揭秘》--数据类型

      浮点数类型 IEEE标准从逻辑上采用一个三元组{S, E, M}来表示一个数N,它规定基数为2,符号位S用0和1分别表示正和负,尾数M用原码表示,阶码E用移码表示.根据浮点数的规格化方法,尾数域的 ...

  8. LiteOS内核源码分析:任务LOS_Schedule

    摘要:调度,Schedule也称为Dispatch,是操作系统的一个重要模块,它负责选择系统要处理的下一个任务.调度模块需要协调处于就绪状态的任务对资源的竞争,按优先级策略从就绪队列中获取高优先级的任 ...

  9. 全网最详细的Linux命令系列-ls命令

    Linux开始必须要会的命令当属ls,在日常工作中用到ls命令时的频率是很多的,作为一个初学者,可能我只会或者顶多ls -l两种用法.但是ls其实是一个非常实用的指令,ls命令就是list的缩写,ls ...

  10. java面试一日一题:java线程池

    问题:请讲下java中的线程池 分析:在面试中经常问到线程池的问题,要掌握其基本概念,使用方法,注意事项等,引申下tomcat中默认的线程数是多少 回答要点: 主要从以下几点去考虑, 1.为什么要使用 ...