开发者社区> 技术小胖子> 正文

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

简介:
+关注继续查看

wKioL1L7MQSTFjsnAAKa3CEUI5Q764.jpg


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?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($cfilefilesize($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');
?>


源码下载:http://down.51cto.com/data/1081444



最近在研究php断点续传上传文件(要求不能使用swf插件),算是有点进展吧!

思路01:将文件分割成若干部分,后台一个一个接收合并,并记录下当前合并成功到了第几个。下此从这个开始合并,直到合并完成。判断:生成文件的大小和文件md5码是否一致。返回true or false。


思路02:文件流。通过记录指针写入文件。记录这次写到了第几针,下次从这里开始写。




继续研究中......







      本文转自许琴 51CTO博客,原文链接:http://blog.51cto.com/xuqin/1358490,如需转载请自行联系原作者




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
php 支持断点续传的文件下载类
php 支持断点续传的文件下载类 分类: php class2013-06-30 17:27 17748人阅读 评论(6) 收藏 举报 php断点续传下载http测试 php 支持断点续传,主要依靠HTTP协议中 header HTTP_RANGE实现。
882 0
基于PHP和MySQL的新闻发布系统——【功能优化】
基于PHP和MySQL的新闻发布系统——【功能优化】
33669 0
基于PHP和MySQL的新闻发布系统
基于PHP和MySQL的新闻发布系统
44 0
开心档-软件开发入门之PHP - AJAX 与 MySQL
本文主要讲解AJAX 可用来与数据库进行交互式通信。
37 0
如何修复“PHP 安装缺少 WordPress 所需的 MySQL 扩展”的错误?
在WordPress建站,WordPress定制开发过程中,开发者容易遇见“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”的错误提示,如果出现这样的情况,应该怎么办?北京六翼信息有限公司的开发工程师指出,要修复错误“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”,您需要确保您的 PHP 安装已正确安装和配置 MySQL 数据库驱动程序 (mysqlnd) 和 mysqli 扩展。只有这样,您才能恢复 WordPress 和 WordPress 数据库之间的正常连接,并让您的网站重新运行。
26 0
+关注
技术小胖子
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
PHP安全开发_从白帽角度做安全
立即下载
PHP在机器学习上的应用及云深度学习平台的架构设计与实现
立即下载
PHP与APM_技术内幕和最佳实践
立即下载
相关实验场景
更多