如何在WebDAV中使用Guzzle复制远程文件?

时间:2017-07-27 23:24:51

标签: php webdav guzzle

我试图了解如何使用Guzzle将远程WebDAV服务器上的文件复制到同一服务器上的另一个位置。我目前有

$client->request('COPY', 'file1.txt', [
    'Destination' => 'file2.txt',
    'Overwrite' => 'T',
]);

这种方法给了我400响应

    Client error: 'COPY http://example.com/remote.php/dav/files/admin/file1.txt' resulted in a '400 Bad Request' response:

file1.txt确实存在,并且它不是权限问题。

我正在关注一些文档*并试图猜测我的工作方式,因为我无法在线找到任何示例。

任何人都可以让我知道我需要改变什么吗?

*例如https://docs.nextcloud.com/server/12/developer_manual/client_apis/WebDAV/index.html

1 个答案:

答案 0 :(得分:0)

我找到了答案。 Destination和Overwrite参数需要在标题中发送。

$headers = [
    'Destination' => 'file2.txt',
    'Overwrite' => 'T',
]);
$client->request('COPY', 'file1.txt', [
    'headers' => $headers,
]);

似乎缺乏关于WebDAV的文档。