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 伪静态隐藏传递参数名的四种方法
Feb 22 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
Feb 03 PHP
Apache服务器无法使用的解决方法
May 08 PHP
php实现根据url自动生成缩略图的方法
Sep 23 PHP
PHP中if和or运行效率对比
Dec 12 PHP
PHP+JS三级菜单联动菜单实现方法
Feb 24 PHP
PHP基于DOM创建xml文档的方法示例
Feb 08 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 PHP
PDO::prepare讲解
Jan 29 PHP
PHP的curl函数的用法总结
Feb 14 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中循环语句的用法介绍
2012/01/30 PHP
PHP 第三节 变量介绍
2012/04/28 PHP
PHP重定向的3种方式
2013/03/07 PHP
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
浅谈php提交form表单
2015/07/01 PHP
详解PHP安装mysql.so扩展的方法
2016/12/31 PHP
WEB前端设计师常用工具集锦
2014/12/09 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
js实现不提交表单获取单选按钮值的方法
2015/08/21 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
angular 动态组件类型详解(四种组件类型)
2017/02/22 Javascript
js实现彩色条纹滚动条效果
2017/03/15 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
vue实现消息的无缝滚动效果的示例代码
2017/12/05 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
python进阶教程之文本文件的读取和写入
2014/08/29 Python
跟老齐学Python之坑爹的字符编码
2014/09/28 Python
Python中的列表知识点汇总
2015/04/14 Python
Python中的Numpy矩阵操作
2018/08/12 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
通过实例解析python描述符原理作用
2020/01/22 Python
浅谈django channels 路由误导
2020/05/28 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
2014学年自我鉴定
2014/02/23 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
redis三种高可用方式部署的实现
2021/05/11 Redis
Python机器学习之基于Pytorch实现猫狗分类
2021/06/08 Python