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 相关文章推荐
Windows下的PHP5.0安装配制详解
Sep 05 PHP
PHP写MySQL数据 实现代码
Jun 15 PHP
实用PHP会员权限控制实现原理分析
May 29 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
Oct 05 PHP
ajax完美实现两个网页 分页功能的实例代码
Apr 16 PHP
PHP输出XML到页面的3种方法详解
Jun 06 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
Oct 16 PHP
PHP 动态生成静态HTML页面示例代码
Jan 15 PHP
php读取富文本的时p标签会出现红线是怎么回事
May 13 PHP
php中JSON的使用与转换
Jan 14 PHP
php字符串函数 str类常见用法示例
May 15 PHP
PHP const定义常量及global定义全局常量实例解析
May 28 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
短波的认识
2021/03/01 无线电
php 浮点数比较方法详解
2017/05/05 PHP
JS 创建对象(常见的几种方法)
2008/11/03 Javascript
jQuery 判断元素上是否绑定了事件
2009/10/28 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
javascript列表框操作函数集合汇总
2013/11/28 Javascript
关于Javascript 对象(object)的prototype
2014/05/09 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
JavaScript中的对象与JSON
2015/07/03 Javascript
理解javascript正则表达式
2016/03/08 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
jQuery 移除事件的方法
2020/06/20 jQuery
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
2020/08/27 Javascript
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
python numpy 反转 reverse示例
2019/12/04 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
pytorch中图像的数据格式实例
2020/02/11 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
python 实现简单的计算器(gui界面)
2020/11/11 Python
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
澳大利亚在线奢侈品时尚零售平台:Azura Runway
2021/01/13 全球购物
市场安全管理制度
2014/01/26 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
股权投资协议书
2016/03/23 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis
改造DE1103三步曲
2022/04/07 无线电