我正在使用SabreDAV PHP库连接到WebDAV服务器并下载一些文件但是下载1MB文件需要永远,我必须从该服务器下载最多1GB的文件。我查看了这个链接http://code.google.com/p/sabredav/wiki/WorkingWithLargeFiles,但它没有帮助,因为它告诉我,当我进行GET时我会得到一个流,但事实并非如此。
这是我的代码:
$settings = array(
'baseUri' => 'file url',
'userName' => 'user',
'password' => 'pwd'
);
$client = new \Sabre\DAV\Client($settings);
$response = $client->request('GET');
response是一个带有'body'键的数组,其中包含文件的内容。我究竟做错了什么?我只需要该文件只读。如何尽可能快地逐行读取文件?
提前致谢。
答案 0 :(得分:0)
如果下载1MB文件需要太长时间,那么我认为它不是SabreDAV问题,而是您的服务器或网络或远程服务器的问题。
你提到的谷歌代码链接只列出了一种方法,如果你想传输非常大的文件,因为你必须使用他们提到的流和fopen方式,但我想我能够传输1GB文件而不使用它当我上次与OwnCloud一起使用时,通常就是这样。
如果您有VPS / Dedi服务器,请打开ssh并使用wget命令测试从WebDAV下载该远程文件所需的速度和时间,如果与使用SabreDAV的那个相同,那么它是服务器/网络问题,而不是SabreDAV,否则,它是Saber或您的代码的问题。
很抱歉,但我没有任何代码可以发帖来帮助你,因为问题本身并不清楚,导致它的问题可能超过10件。
PS:你需要增加执行时间,最大文件上传和最大帖子大小的php限制