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 相关文章推荐
攻克CakePHP系列三 表单数据增删改
Oct 22 PHP
检查php文件中是否含有bom的函数
May 31 PHP
解析php多线程下载远程多个文件
Jun 25 PHP
浅谈php中include文件变量作用域
Jun 18 PHP
详解js异步文件加载器
Jan 24 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
PHP入门教程之会话控制技巧(cookie与session)
Sep 11 PHP
php curl中gzip的压缩性能测试实例分析
Nov 08 PHP
Laravel5中Cookie的使用详解
May 03 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
php往mysql中批量插入数据实例教程
Dec 12 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
Aug 13 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+mysql)
2007/11/23 PHP
PHP5中虚函数的实现方法分享
2011/04/20 PHP
微信支付开发订单查询实例
2016/07/12 PHP
php 猴子摘桃的算法
2017/06/20 PHP
php实现微信支付之现金红包
2018/05/30 PHP
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
JQuery的html(data)方法与&amp;lt;script&amp;gt;脚本块的解决方法
2010/03/09 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
jquery ajax 如何向jsp提交表单数据
2015/08/23 Javascript
js和jquery实现监听键盘事件示例代码
2020/06/24 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
js时间转换毫秒的实例代码
2019/08/21 Javascript
js实现打字小游戏
2019/12/17 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
react 生命周期实例分析
2020/05/18 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
用Python实现一个简单的能够发送带附件的邮件程序的教程
2015/04/08 Python
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
基于python 二维数组及画图的实例详解
2018/04/03 Python
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
Python 中pandas索引切片读取数据缺失数据处理问题
2019/10/09 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
门诊挂号室室长岗位职责
2013/11/27 职场文书
公积金单位接收函
2014/01/11 职场文书
领班岗位职责范文
2014/02/06 职场文书
领导调研接待方案
2014/02/27 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
2016年公司新年寄语
2015/08/17 职场文书
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js