1

我正在尝试访问我 owncloud webdav 界面并从PEAR WebDAV Client获取根目录中的文件列表。我正在尝试以下操作:

include("HTTP/WebDAV/Client.php");
$client = new HTTP_WebDAV_Client_Stream();

$user="admin";
$pass = "q1w2e3r4";

$dir = "webdavs://".$user.":".$pass."@127.0.0.1:10081/owncloud/remote.php/webdav/";

$stuff = $client->dir_opendir($dir, array());
var_dump($stuff);
var_dump($client->dirfiles);

代码打印假,假,当我尝试调试它时,我在 Socket.php 中看到 Connection denied 错误,当它试图调用该函数时

fsockopen("127.0.0.1", 10081, $err, $errstr);

更奇怪的是,我可以访问该服务器并列出来自尸体的目录。我也可以通过替换我的$dir变量来使用我的代码访问测试 DAV 服务器:

$dir = "webdavs://".$user.":".$pass."@127.0.0.1:10081/owncloud/remote.php/webdav/";
4

1 回答 1

1

这是一个丑陋的黑客,但如果你添加类似的东西:

 var_dump($err->getMessage()); 

到第 739 行的 /usr/share/php/HTTP/Request.php,您应该能够看到最相关的错误消息。(如果那是 Request.php 的安装位置。)

不幸的是,底层 HTTP_Request 包中似乎没有一种机制可以将该特定错误消息返回给 HTTP_WebDAV_Client_Stream 代码。

于 2014-07-24T21:19:29.850 回答