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 相关文章推荐
header()函数使用说明
Nov 23 PHP
php获取网页内容方法总结
Dec 04 PHP
php执行sql语句的写法
Mar 10 PHP
完美实现GIF动画缩略图的php代码
Jan 02 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 PHP
php使用$_POST或$_SESSION[]向js函数传参
Sep 16 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
May 12 PHP
php中define用法实例
Jul 30 PHP
PHP简单实现无限级分类的方法
May 13 PHP
php实现给二维数组中所有一维数组添加值的方法
Feb 04 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
PHP中单例模式的使用场景与使用方法讲解
Mar 18 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
为查询结果建立向后/向前按钮
2006/10/09 PHP
PHP setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
解析PHP对现有搜索引擎的调用
2013/06/25 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
js 判断checkbox是否选中的实现代码
2010/11/23 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
js对象的复制继承实例
2015/01/10 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
简单说说angular.json文件的使用
2018/10/29 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
python实现基于两张图片生成圆角图标效果的方法
2015/03/26 Python
简单学习Python time模块
2016/04/29 Python
Python判断是否json是否包含一个key的方法
2018/12/31 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
python cv2在验证码识别中应用实例解析
2019/12/25 Python
Win10里python3创建虚拟环境的步骤
2020/01/31 Python
Python3 读取Word文件方式
2020/02/13 Python
关于Django Models CharField 参数说明
2020/03/31 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
2020/06/18 Python
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
计算机工程学院个人求职信
2013/10/05 职场文书
社区安全检查制度
2014/02/03 职场文书
户外婚礼策划方案
2014/02/08 职场文书
中介业务员岗位职责
2014/04/09 职场文书
全国爱牙日活动总结
2015/02/05 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
社区干部培训心得体会
2016/01/06 职场文书
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
SQL注入详解及防范方法
2021/12/06 MySQL