Пример загрузки файла в nextcloud в PHP - PullRequest
0 голосов
/ 20 февраля 2019

Я искал рабочий пример для загрузки файла в новое установленное nextcloud.

Кто-нибудь может предоставить пример кода?

Я нашел один скрипт usint saber dav, но это приводит только к App not installed ошибка.

Другой используемый скрипт curl_exec получает file not found из nextcloud:

$fp = fopen("test.jpg", "r");

$c = curl_init();
curl_setopt($c, CURLOPT_URL, "https://mcloud.XXXX.at/index.php/s/fo7W3MMRnas9B3G");
curl_setopt($c, CURLOPT_USERPWD, "xxx:yyyy"); 
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_PUT, true); 
curl_setopt($c, CURLOPT_INFILESIZE, filesize("test.jpg"));
curl_setopt($c, CURLOPT_INFILE, $fp);
$ret = curl_exec($c);

РЕДАКТИРОВАТЬ: с помощью Sabre DAV я также безуспешно проверил следующий код:

include 'vendor/autoload.php';

$settings = array(
    'baseUri' => 'https://XXXXXXXXXXXXXXX.at/remote.php/dav',
    'userName' => 'test1',
    'password' => 's8R87-JCZN6-tf3Eb-aHLyj-zPzKW'
);

$client = new Sabre\DAV\Client($settings);

// Upload a file
$upload_result = $client->request('PUT', 'test-upload.txt', 'This will be written to the txt file');

результат с помощью Sabre dav всегда был html-ответом с сообщением «Приложение не установлено»

1 Ответ

0 голосов
/ 21 февраля 2019

уже нашел решение.Плай php-curl работает, но мне пришлось изменить URL на:

curl_setopt($c, CURLOPT_URL, "https://XXXXXXXX/remote.php/webdav/SUBPATH/test.jpg");
...