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 相关文章推荐
一个程序下载的管理程序(二)
Oct 09 PHP
php 301转向实现代码
Sep 18 PHP
php下获取客户端ip地址的函数
Mar 15 PHP
php学习笔记之面向对象
Nov 08 PHP
php+ajax实现文章自动保存的方法
Dec 30 PHP
laravel 5 实现模板主题功能
Mar 02 PHP
php程序内部post数据的方法
Mar 31 PHP
php实现在多维数组中查找特定value的方法
Jul 29 PHP
yii2中dropDownList实现二级和三级联动写法
Apr 26 PHP
详解php中的implements 使用
Jun 13 PHP
php实现的简单多进程服务器类完整示例
Feb 01 PHP
php png失真的原因及解决办法
Oct 24 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
php面向对象全攻略 (八)重载新的方法
2009/09/30 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
php通过记录IP来防止表单重复提交方法分析
2014/12/16 PHP
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
vuejs 制作背景淡入淡出切换动画的实例
2018/09/01 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
python任务调度实例分析
2015/05/19 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
基于Python实现的ID3决策树功能示例
2018/01/02 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
2018/01/23 Python
python的schedule定时任务模块二次封装方法
2019/02/19 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
通过字符串导入 Python 模块的方法详解
2019/10/27 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
2019/11/11 Python
使用python计算三角形的斜边例子
2020/04/15 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
医学生职业规划范文
2014/01/05 职场文书
教学实习自我评价
2014/01/28 职场文书
《狮子和兔子》教学反思
2014/03/02 职场文书
2014年社区工作总结
2014/11/18 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
交通安全教育主题班会
2015/08/12 职场文书
中学生打架《检讨书》范文
2019/08/12 职场文书