owncloud源码分析7--客户端上传2
来源:互联网 发布:绿色破解版软件 编辑:程序博客网 时间:2024/05/29 16:07
之前已经介绍了客户端上传文件的位置,但是后来实践发现只有小文件走owncloud\lib\private\connector\sabre\file.php中的put方法,大文件并没有走,进一步探讨发现对于客户端上传大文件,owncloud会进行拆分上传再整合的方式,为什么这样,我做了个测试:
首先可以确定在大文件上传时,走的方法是:owncloud\lib\private\connector\sabre\file.php中的createFileChunked方法,跟进方法里面进一步找到了下面的方法:
\owncloud\lib\private\filechunking.php中的file_assemble,见文知意,也就是文件整合的方法,然后其中的assemble方法中的$this->remove()注释掉,则会在对应的用户的当前用户名下面的cache文件下发现有一堆拆分的文件,如下图:
可以看到有很多的小文件,而且可以看出拆分的大小为5120kb。那么如何整合这些文件成原文件呢,于是我又测试了一下自己写的整合方法:
首先我将以上文件复制到apache下的think文件夹下,然后运行了一下的php文件:
<?php
echo 222;
$fo=fopen("5.rar","a");
for($i=0;$i<15;$i++){
$content = file_get_contents("think/thinksns.zip-chunking-3572855997-".$i);
$flag=fwrite($fo, $content);
if(!$flag){
break;
echo "挂了!";
}
}
fclose($fo);
echo("SUCCESS!!");
?>
页面输出:222SUCCESS!!
然后再看我的www目录下:
出现了我要生成的5.rar文件,打开发现和原来的压缩文件没有区别,即成功的恢复了这个文件。
这是原文件:
大小和使用都没有问题,OK了
- owncloud源码分析7--客户端上传2
- owncloud源码分析4--上传代码分析
- owncloud源码分析6--客户端单点实现
- owncloud源码分析 修改界面
- owncloud源码分析2--数据库增删改查
- owncloud源码分析1--部分修改Demo
- owncloud源码分析3--第三方类库
- owncloud源码分析5--CAS单点登录
- OWNCLOUD源码改动分析---登录模块
- owncloud源码分析9--零散的内容
- owncloud源码分析8--修改json文件存储
- BT客户端源码分析
- BT客户端源码分析
- Zookeeper客户端源码分析
- CentOS 7安装ownCloud
- Owncloud
- 传奇源码分析-客户端(传奇2文件格式分析)
- 传奇源码分析-客户端(传奇2文件格式分析)
- 浅谈ANR及如何分析解决ANR.1
- jboss eap 6.3 域(Domain)模式配置
- C++手稿:STL中的函数对象与函数指针
- 去掉UIScrollView的滚动条
- Android 如何判断电池电量是否充足
- owncloud源码分析7--客户端上传2
- C++手稿:指针与引用
- Qt网络获取外网的网络信息
- XML 包含函数fn:contains(string1,string2)的用法
- 最低公共祖先Lowest Common Ancestor of a Binary Tree
- Linux下开机启动sh文件
- C++手稿:函数与参数
- 关于visual c++6.0【未完待续】
- Android错误之--activity_main cannot be resolved or is not a field