Я студент, плохо знакомый с PHP (и веб-разработкой в целом), и пытаюсь написать простой интерфейс с сервером WebDAV моего колледжа.
Следующий код (с соответствующими учетными данными и адресом), который использует обнаруженный мной плагин HTTP WebDAV Client (https://github.com/pear/HTTP_WebDAV_Client), успешно возвращает первые 8 КБ данных из файлов .txt / .html / .js, с которыми я пробовал, но не более.
Из того, что я могу сказать, вероятный виновник состоит в том, что сервер использует кодирование передачи по частям (что имеет смысл), что приводит меня к мысли, что мне придется читать в потоке данных, а не в одном файле / чанке (опять же, Я новичок в этом). Если это так, я не уверен, как это сделать.
Насколько я понимаю, cURL, вероятно, будет самым быстрым способом сделать это, но я не думаю, что Dreamhost включил cURL для php.
//this loads the HTTP_WebDAV_Client plugin:
// https://github.com/pear/HTTP_WebDAV_Client
require_once "HTTP/WebDAV/Client.php";
//this is for testing purposes only (for obvious reasons)
$user = $_GET['user'];
$pass = $_GET['pass'];
$fileName = $_GET['fileName'];
//actual address obscured
$dir = "webdavs://" . $user . ":" . $pass . "@webfs.xxx.com/main/hcwebdav/";
$file = fopen($dir.$fileName, "rb");
//$content;
if (!$file) {
die("Error opening file :( $user $pass");
} else {
//This returns only the first chunk:
echo file_get_contents($dir.$fileName);
//this has the same behavior
/*
while ($line = fread($file, 8192)) {
$content .= $line;
}
echo $content;
fclose($file);
*/
}
Я надеюсь, что этот вопрос не слишком глуп: / Я пытаюсь написать веб-приложения, чтобы помочь студентам начального уровня научиться кодировать, и этот плагин позволит им очень легко публиковать свои собственные сайты из браузера. основанный редактор кода / мини-IDE!
Ура!
Мои предложения исходят из используемого вами пакета и вашей проблемы с ним, но SabreDAV — самый популярный WebDAV в сообществе PHP, так почему бы не использовать его вместо этого.
Других решений пока нет …