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 采集程序中常用的函数
Dec 09 PHP
基于PHP常用函数的用法详解
May 10 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
Aug 19 PHP
php解析字符串里所有URL地址的方法
Apr 03 PHP
php获取Google机器人访问足迹的方法
Apr 15 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
May 12 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
Jul 29 PHP
PHP实现的网站目录扫描索引工具
Sep 08 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
Aug 10 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
Apr 26 PHP
PHP ob缓存以及ob函数原理实例解析
Nov 13 PHP
php解析非标准json、非规范json的方式实例
Dec 10 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
150kHz到30Mhz完全冲浪手册
2020/03/20 无线电
天津市收音机工业发展史
2021/03/04 无线电
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
js location.replace与location.reload的区别
2010/09/08 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
js实现弹窗暗层效果
2017/01/16 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
ES6如何用一句代码实现函数的柯里化
2020/01/18 Javascript
vue实现井字棋游戏
2020/09/29 Javascript
ES6中的类(Class)示例详解
2020/12/09 Javascript
Vue SPA 首屏优化方案
2021/02/26 Vue.js
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
Python如何实现守护进程的方法示例
2017/02/08 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
Python实现简单的HttpServer服务器示例
2017/09/25 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
解决keras加入lambda层时shape的问题
2020/06/11 Python
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
物资采购方案
2014/06/12 职场文书
基层党建工作汇报材料
2014/08/15 职场文书
开学随笔
2015/08/15 职场文书
详解JVM系列之内存模型
2021/06/10 Javascript