在PHP中将文件上传到nextcloud的示例

时间:2019-02-20 16:14:21

标签: php nextcloud

我搜索了将文件上传到新安装的nextcloud的工作示例。

有人可以提供一些示例代码吗?

我找到了一个使用sabre dav的脚本,但这只会导致App not installed错误。

另一个使用curl_exec的脚本从nextcloud获取file not found

$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);

编辑: 使用Saber 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');

saber dav的结果始终是带有“未安装应用程序”消息的html响应

1 个答案:

答案 0 :(得分:0)

已经找到解决方案。 plai php-curl有效,但是我不得不将URL更改为:

const func = String;