php (zip)文件下载设置
普通下载头大概意思,文件输出的地方二选一,小文件下载。如文件较大时注意执行时间与内存使用。可以看php大文件下载
$filename = $_GET['filename'];
$pathname = "./sucai/$filename";
$filesize = filesize($pathname);
//跟据路径下载文件
//字节流的方式发送到客户端
header("content-type:application/octet-stream");
//header("content-type:application/force-download");
//关于断点续传,服务器支持
header("Accept-Ranges:bytes") ;
//以附件的形式发送到客户端
header('Content-Disposition: attachment; filename="' . basename($path) . '"');
//文件大小比对
header("Content-Length: ". filesize($path));
readfile($path);
$handle = fopen($pathname, 'rb');
$content = '';
while (!feof($handle)) {
$content .= fread($handle, 1024);
}
fclose($handle);
echo $content;
项目中用到zip批量打包下载文件,小文件下载。如文件较大时注意执行时间与内存使用。可以看php大文件下载
$param = [
'uid' => 1,
'title' => $db->escape_string('title','string', 'G'),
'annex' => $db->escape_string('annex','string', 'G'),
];
RequestCheck::checkParam($param['title'], 'title');
RequestCheck::checkParam($param['annex'], 'annex');
$title = '文档下载';
$content = serialize($param);
get_logadd(0, $content, $title, 25, $_USER->id);
if (false !== strpos($param['annex'], ',')) {
$param['annex'] = explode(',', $param['annex']);
} else {
$param['annex'] = [$param['annex']];
}
if (false !== strpos($param['title'], '.')) {
$param['title'] = explode('.', $param['title'])[0];
}
$filename = $param['title'] . '_' . date('Y-m-d H-i-s') . '_' . rand(100, 999) . '.zip';
$files = $param['annex'];
$tmpFile = tempnam('./cache', '');
$zip = new ZipArchive;
$zip->open($tmpFile, ZipArchive::CREATE);
foreach ($files as $file) {
$fileContent = file_get_contents($file);
$zip->addFromString(basename($file), $fileContent);
}
$zip->close();
header("Cache-Control: public");
header("Content-Description: File Transfer");
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename=' . $filename);
header("Content-Transfer-Encoding: binary"); //告诉浏览器,这是二进制文件
header('Content-Length: ' . filesize($tmpFile));
@readfile($tmpFile);
php (zip)文件下载设置的更多相关文章
- urlretrieve 如何给文件下载设置下载进度?
#python #xiaodeng #如何给文件下载设置下载进度? import urllib def callbackinfo(down,block,size): ''' 回调函数: down:已经 ...
- 微信公众号添加zip文件下载
微信公众号添加zip文件下载的教程 我们都知道创建一个微信公众号,在公众号中发布一些文章是非常简单的,但公众号添加附件下载的功能却被限制,如今可以使用小程序“微附件”进行在公众号中添加附件.如:zip ...
- jszip 前端生成zip文件下载
[文档地址] export const ZipFileCreate = () => { Promise.all([ // 下面是引入依赖包 require('jszip'), import('f ...
- Extnet Direct 提交后台事件文件下载设置
App.direct.MasterData.Export(App.tfSearch.getValue(), { isUpload: true ...
- zip 文件下载函数封装
代码: export default { /** * 下载文件 */ exportFile: (fileUrl) => { if (fileUrl) { let exportFrame = do ...
- MySQL zip版安装配置
文章出处:http://www.cnblogs.com/winstic/,请保留此连接 这段时间在学习Python 数据库操作知识,简单整理MySQL zip文件安装方法 下载 在MySQL官网htt ...
- springboot中使用freemarker生成word文档并打包成zip下载(简历)
一.设计出的简历模板图以及给的简历小图标切图 二.按照简历模板图新建简历word文件 :${字段名},同时将图片插入到word中,并将建好的word文件另存为xml文件: 三.直 ...
- MySQL 5.7.18 zip版本的安装使用方法
转自:https://www.cnblogs.com/nepulgh/p/7152618.html MySQL 5.7.18 zip版本的安装使用方法 这个版本的MySQL不像那种点击就可以立即安装, ...
- ZIP压缩算法详细分析及解压实例解释
最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...
随机推荐
- Lua 5.3 参考手册
转自:http://www.runoob.com/manual/lua53doc/manual.html 1 – 简介 Lua 是一门扩展式程序设计语言,被设计成支持通用过程式编程,并有相关数据描述设 ...
- socket概念 套接字
理解socket soxket因为TCP是面向流的,你发的信息如果很多很快,TCP这样就会形成黏包 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socke ...
- Python初学者第十三天 三级菜单程序小作业
13day 作业题目: 三级菜单 作业需求: 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村' ...
- Apache配置支持目录浏览
主配置文件 httpd.conf 中修改: 1)添加支持模块 LoadModule autoindex_module modules/mod_autoindex.so LoadModule dir ...
- 性状、生成器、闭包、OPcache【Modern PHP】
目录 性状 Trait 生成器 闭包 Zend OPcache PHP发展这么多年,技术.架构都已经革新,了解现代PHP很重要,最近在看Model PHP这本书,系统的了解下PHP相关的概念. 性状 ...
- visual studio 2017安装教程以及各类问题解决方案
文章的关键词和所含教程: VS2017安装/visual studio 2017安装/Xamarin/Android for visual studio 2017/VS2017找不到网站/VS2017 ...
- BZOJ1972:[SDOI2010]猪国杀(模拟)
Description 太长就不贴过来了 Solution 这个题是真的不难写……唯一的难度就在于理解题意上面……感觉这就是个阅读理解题啊…… 而且你三国杀玩的越多可能就越难写因为你无法理解那些猪的思 ...
- C# winform 数据库操作知识点总结(干货)
1.数据库连接及操作 在说数据库操作之前,先说一下数据库连接操作字符串的获取 首先,点击服务器资源管理器,接下来选中数据连接右键点击添加连接,填入你要连接的服务器名称,点击单选框使用SQL Serve ...
- 【php】获取ip
addBoard.php中获取到ip $ip=$_SERVER['REMOTE_ADDR']; 通过ajax采取POST方式发送到服务器 $("#submit").on(" ...
- Presentation 常用的承接句——技术分享、学术报告串联全场不尴尬
前言 现在即使是搞技术,做科研的,也需要在不同的场合,用ppt来做分享,做汇报,做总结. 如果国际会议,研讨会,或者在外企,国外工作,英文的presentation就更加必不可少.英语的提升需要大家从 ...