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 版获取重定向后的地址(代码)
Jun 26 PHP
一个php短网址的生成代码(仿微博短网址)
May 07 PHP
PHP中spl_autoload_register()和__autoload()区别分析
May 10 PHP
PHP图片处理之图片背景、画布操作
Nov 19 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
Mar 05 PHP
php实现多维数组排序的方法示例
Mar 23 PHP
PHP读取、解析eml文件及生成网页的方法示例
Sep 04 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
浅谈PHP实现大流量下抢购方案
Dec 15 PHP
PHP cURL获取微信公众号access_token的实例
Apr 28 PHP
PHP copy函数使用案例代码解析
Sep 01 PHP
php 文件上传至OSS及删除远程阿里云OSS文件
Jul 04 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 register_shutdown_function()函数的使用示例
2015/06/23 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
Bootstrap实现登录校验表单(带验证码)
2016/06/23 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
基于nodejs的微信JS-SDK简单应用实现
2019/05/21 NodeJs
JavaScript运行机制实例分析
2020/04/11 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
js实现直播点击飘心效果
2020/08/19 Javascript
github配置使用指南
2014/11/18 Python
CentOS安装pillow报错的解决方法
2016/01/27 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
通过pycharm使用git的步骤(图文详解)
2019/06/13 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
服务员岗位责任制
2014/02/11 职场文书
秋季运动会广播稿大全
2014/02/17 职场文书
就业协议书范本
2014/04/11 职场文书
爱我中华演讲稿
2014/05/20 职场文书
食品安全处置方案
2014/06/14 职场文书
党的群众路线教育实践活动对照检查材料(个人)
2014/09/24 职场文书
毕业班工作总结
2015/08/10 职场文书
导游词之长城八达岭
2019/09/24 职场文书
Nginx反爬虫策略,防止UA抓取网站
2021/03/31 Servers
用python实现监控视频人数统计
2021/05/21 Python