php断点续传之如何分割合并文件

 更新时间:2014年03月22日 17:58:59   作者:  
这篇文章主要介绍了php断点续传之如何分割合并文件,需要的朋友可以参考下
复制代码 代码如下:

<?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 分库分表hash算法

    php 分库分表hash算法

    分享一个分库分表hash算法,需要的朋友可以参考下。
    2009-11-11
  • PHP服务器页面间跳转实现方法

    PHP服务器页面间跳转实现方法

    在ASP中,我们可以使用Server.Transfer来实现在服务器端重定向,PHP中虽然没有这样的函数,但是要实现类似的跳转也不难
    2012-08-08
  • php站内搜索关键词变亮的实现方法

    php站内搜索关键词变亮的实现方法

    这篇文章主要介绍了php站内搜索关键词变亮的实现方法,以实例形式较为详细的分析了数据库表的创建及针对数据库的搜索关键字高亮的实现技巧,非常具有实用价值,需要的朋友可以参考下
    2014-12-12
  • PHP 获取文件路径(灵活应用__FILE__)

    PHP 获取文件路径(灵活应用__FILE__)

    __FILE__ ,是返回文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径
    2013-02-02
  • php ci框架中加载css和js文件失败的原因及解决方法

    php ci框架中加载css和js文件失败的原因及解决方法

    在将html页面整合到ci框架里面的时候,加载css和js失败。原因是ci框架是入口的框架
    2014-07-07
  • PHP中isset与array_key_exists的区别实例分析

    PHP中isset与array_key_exists的区别实例分析

    这篇文章主要介绍了PHP中isset与array_key_exists的区别,较为详细的分析了isset与array_key_exists使用中的区别,并实例分析其具体用法,需要的朋友可以参考下
    2015-06-06
  • PHP中Session ID的实现原理实例分析

    PHP中Session ID的实现原理实例分析

    这篇文章主要介绍了PHP中Session ID的实现原理,结合实例形式分析了PHP中session的工作机制、调用原理、配置方法及使用技巧,需要的朋友可以参考下
    2019-08-08
  • php数组转成json格式的方法

    php数组转成json格式的方法

    这篇文章主要介绍了php数组转成json格式的方法,实例分析了php操作数组及json格式数据的方法,需要的朋友可以参考下
    2015-03-03
  • PHP访问数据库集群的方法小结

    PHP访问数据库集群的方法小结

    这篇文章主要介绍了PHP访问数据库集群的方法,结合实例形式总结分析了三种常见的PHP访问数据库集群的技巧,需要的朋友可以参考下
    2016-03-03
  • Windows环境下安装PHP Pear的方法图文教程

    Windows环境下安装PHP Pear的方法图文教程

    这篇文章主要介绍了Windows环境下安装PHP Pear的方法,结合图文形式详细说明了Windows环境下安装PHP Pear的相关命令与操作技巧,需要的朋友可以参考下
    2019-07-07

最新评论