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 相关文章推荐
PHP.MVC的模板标签系统(五)
Sep 05 PHP
sqlyog 中文乱码问题的设置方法
Oct 19 PHP
PHP 设置MySQL连接字符集的方法
Jan 02 PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 PHP
php字符串分割函数explode的实例代码
Feb 07 PHP
深入理解:XML与对象的序列化与反序列化
Jun 08 PHP
php 伪造ip以及url来路信息方法汇总
Nov 25 PHP
php实现XSS安全过滤的方法
Jul 29 PHP
PHP用FTP类上传文件视频等的简单实现方法
Sep 23 PHP
PHP迭代器接口Iterator用法分析
Dec 28 PHP
PHP中str_split()函数的用法讲解
Apr 11 PHP
php7新特性的理解和比较总结
Apr 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设计模式 Delegation(委托模式)
2011/06/26 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
2013/06/29 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
2019/08/12 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
JS前端框架关于重构的失败经验分享
2013/03/17 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
2017/02/08 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
vue-router的HTML5 History 模式设置
2018/09/08 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
python实现博客文章爬虫示例
2014/02/26 Python
Python 列表list使用介绍
2014/11/30 Python
Python实现豆瓣图片下载的方法
2015/05/25 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
python八皇后问题的解决方法
2018/09/27 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
Python爬虫爬取糗事百科段子实例分享
2020/07/31 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
Python+OpenCV图像处理——图像二值化的实现
2020/10/24 Python
我们的节日清明节活动方案
2014/03/05 职场文书
生物科学专业自荐书
2014/06/20 职场文书
植树节标语
2014/06/27 职场文书
信用卡工作证明模板
2014/09/14 职场文书
小学教师2014年度工作总结
2014/12/03 职场文书
2015入党自荐书范文
2015/03/05 职场文书
护理培训心得体会
2016/01/22 职场文书
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL
Java实现二分搜索树的示例代码
2022/03/17 Java/Android