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 相关文章推荐
mysql 查询指定日期时间内sql语句实现原理与代码
Dec 16 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
Jun 24 PHP
PHP中的插件机制原理和实例
Jul 08 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
Jun 17 PHP
在PHP程序中使用Rust扩展的方法
Jul 03 PHP
CodeIgniter生成静态页的方法
May 17 PHP
PHP单态模式简单用法示例
Nov 16 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
Dec 19 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
Apr 26 PHP
让Laravel API永远返回JSON格式响应的方法示例
Sep 05 PHP
php JWT在web端中的使用方法教程
Sep 06 PHP
PHP单例模式数据库连接类与页面静态化实现方法
Mar 20 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转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
PHP实现货币换算的方法
2014/11/29 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
2019/03/22 PHP
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
基于Jquery的简单&amp;简陋Tabs插件代码
2010/02/09 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
2011/01/06 Javascript
另一个javascript小测验(代码集合)
2011/07/27 Javascript
javascript firefox 自动加载iframe 自动调整高宽示例
2013/08/27 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
深入理解JS中的变量及作用域、undefined与null
2014/03/04 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
JavaScript之promise_动力节点Java学院整理
2017/07/03 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
百度地图去掉marker覆盖物或者去掉maker的label文字方法
2018/01/26 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
Python面向对象程序设计类的多态用法详解
2019/04/12 Python
python3.5安装python3-tk详解
2019/04/26 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
python flask框架实现重定向功能示例
2019/07/02 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
2019/08/29 Python
python如何输出反斜杠
2020/06/18 Python
详解python 内存优化
2020/08/17 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
教师自我反思材料
2014/02/14 职场文书
大学生自我评价范文分享
2014/02/21 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
领导班子对照检查材料
2014/09/22 职场文书
自荐信怎么写
2015/03/04 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript