php断点续传之如何分割合并文件


Posted in PHP onMarch 22, 2014
<?php 
ini_set("memory_limit", "50M");//必须的,根据你环境的实际情况尽量大,防止报错 
ini_set("max_execution_time", "100"); 
//file_exists() 函数检查文件或目录是否存在,存在则返回 true,否则返回 false。 
//fread() 函数读取文件(可安全用于二进制文件)。fread() 从文件指针 file 读取最多 length 个字节。 
//filesize() 函数返回指定文件的大小(字节)。本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。 
$orgFile = 'Fireworks8-chs.exe';//源文件 
$cacheFileName = 'vbcache';//分割成的临时文件块 
function cutFile($fileName,$block) {//分割 
global $cacheFileName; 
if (!file_exists($fileName)) return false; 
$num = 1; 
$file = fopen($fileName, 'rb'); 
while ($content = fread($file,$block)) { 
$cacheFile = $cacheFileName . $num++ . '.dat'; 
$cfile = fopen($cacheFile, 'wb'); 
fwrite($cfile, $content); 
fclose($cfile); 
} 
fclose($file); 
} 
function mergeFile($targetFile) {//合并 
global $cacheFileName; 
$num = 1; 
$file = fopen($targetFile, 'wb'); 
while ($num > 0) { 
$cacheFile = $cacheFileName . $num++ . '.dat'; 
if (file_exists($cacheFile)) { 
$cfile = fopen($cacheFile, 'rb'); 
$content = fread($cfile, filesize($cacheFile)); 
fclose($cfile); 
fwrite($file, $content); 
} 
else { 
$num = -1; 
} 
} 
fclose($file); 
} 
//调用 
cutFile($orgFile, 10 * pow(2,20)); //10 * pow(2,20) 就等于 10M pow() 函数返回 x 的 y 次方 
mergeFile('ok.exe'); 
?>
PHP 相关文章推荐
PHP+ajax 无刷新删除数据
Feb 20 PHP
php getimagesize 上传图片的长度和宽度检测代码
May 15 PHP
php学习笔记之面向对象编程
Dec 29 PHP
php class中self,parent,this的区别以及实例介绍
Apr 24 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
php操作xml入门之xml基本介绍及xml标签元素
Jan 23 PHP
php实现将字符串按照指定距离进行分割的方法
Mar 14 PHP
PHP执行SQL文件并将SQL文件导入到数据库
Sep 17 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
Dec 15 PHP
thinkPHP5.0框架独立配置与动态配置方法
Mar 17 PHP
php数值转换时间及时间转换数值用法示例
May 18 PHP
老生常谈PHP面向对象之注册表模式
May 26 PHP
php 邮件发送问题解决
Mar 22 #PHP
php数组合并的二种方法
Mar 21 #PHP
php数组删除元素示例
Mar 21 #PHP
php动态生成函数示例
Mar 21 #PHP
xss防御之php利用httponly防xss攻击
Mar 21 #PHP
php5.3 goto函数介绍和示例
Mar 21 #PHP
php ctype函数中文翻译和示例
Mar 21 #PHP
You might like
将OICQ数据转成MYSQL数据
2006/10/09 PHP
php中有关合并某一字段键值相同的数组合并的改进
2015/03/10 PHP
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
IE之动态添加DOM节点触发window.resize事件
2010/07/27 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
Next.js实现react服务器端渲染的方法示例
2019/01/06 Javascript
通过js示例讲解时间复杂度与空间复杂度
2019/08/06 Javascript
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
Python二元赋值实用技巧解析
2019/10/25 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
Django框架models使用group by详解
2020/03/11 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
教师研修随笔感言
2014/01/23 职场文书
关于抽烟的检讨书
2014/02/25 职场文书
政治学求职信
2014/06/03 职场文书
纪律教育月活动总结
2014/08/26 职场文书
捐资助学感谢信
2015/01/21 职场文书
2016学习雷锋精神活动倡议书
2015/04/27 职场文书
爱心捐款活动总结
2015/05/09 职场文书
pytorch 中nn.Dropout的使用说明
2021/05/20 Python
世界十大评分最高的动漫,CLANNAD上榜,第八赚足人们眼泪
2022/03/18 日漫
win10壁纸在哪个文件夹 win10桌面背景图片文件位置分享
2022/08/05 数码科技