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 相关文章推荐
excellent!――ASCII Art(由目标图象生成ascii)
Feb 20 PHP
PHP读取MySQL数据代码
Jun 05 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
Aug 21 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
Feb 06 PHP
浅析PHP的ASCII码转换类
Jul 05 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
Nov 03 PHP
PHP实现中文圆形印章特效
Jun 19 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
Jul 04 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
Dec 25 PHP
Centos6.5和Centos7 php环境搭建方法
May 27 PHP
解决laravel资源加载路径设置的问题
Oct 14 PHP
PHP 实现重载
Mar 09 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
Laravel 5框架学习之日期,Mutator 和 Scope
2015/04/08 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
深入分析PHP设计模式
2020/06/15 PHP
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
使用js+jquery实现无限极联动
2013/05/23 Javascript
js判断选择时间不能小于当前时间的示例代码
2013/09/24 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
jquery日历插件e-calendar升级版
2016/11/10 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
JS实现中英文混合文字溢出友好截取功能
2018/08/06 Javascript
Jquery获取radio选中值实例总结
2019/01/17 jQuery
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
详解Python2.x中对Unicode编码的使用
2015/04/03 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
2018/04/28 Python
python应用文件读取与登录注册功能
2019/09/23 Python
python scatter函数用法实例详解
2020/02/11 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
如何编写python的daemon程序
2021/01/07 Python
html5利用canvas绘画二级树形结构图的示例
2017/09/27 HTML / CSS
canvas基础之图形验证码的示例
2018/01/02 HTML / CSS
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
Overload和Override的区别
2012/09/02 面试题
感恩节活动策划方案
2014/05/16 职场文书
人民调解协议书范本
2014/10/11 职场文书
债务纠纷起诉书
2015/05/20 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
《绝招》教学反思
2016/02/20 职场文书
初中生物教学反思
2016/02/20 职场文书
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技