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中使用Oracle数据库(4)
Oct 09 PHP
php抓即时股票信息
Oct 09 PHP
用缓存实现静态页面的测试
Dec 06 PHP
程序员编程十条戒律
Jul 09 PHP
深入PHP autoload机制的详解
Jun 09 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
Jul 05 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
Nov 19 PHP
smarty模板引擎基础知识入门
Mar 30 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 PHP
php实现阳历阴历互转的方法
Oct 28 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
May 19 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
Sep 25 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
DC动漫人物排行
2020/03/03 欧美动漫
详解js异步文件加载器
2016/01/24 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
nodejs更新package.json中的dependencies依赖到最新版本的方法
2018/10/10 NodeJs
详解从NodeJS搭建中间层再谈前后端分离
2018/11/13 NodeJs
JavaScript数值类型知识汇总
2019/11/17 Javascript
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
2018/05/25 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
python 列表中[ ]中冒号‘:’的作用
2019/04/30 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
python Scrapy框架原理解析
2021/01/04 Python
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
视图的作用
2014/12/19 面试题
收银员的岗位职责范本
2014/02/04 职场文书
《夸父追日》教学反思
2014/02/26 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
教师岗位职责范本
2015/04/02 职场文书
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android
详解Flask开发技巧之异常处理
2021/06/15 Python
Go中的条件语句Switch示例详解
2021/08/23 Golang
python中validators库的使用方法详解
2022/09/23 Python