我试图了解如何使用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
答案 0 :(得分:0)
我找到了答案。 Destination和Overwrite参数需要在标题中发送。
$headers = [
'Destination' => 'file2.txt',
'Overwrite' => 'T',
]);
$client->request('COPY', 'file1.txt', [
'headers' => $headers,
]);
似乎缺乏关于WebDAV的文档。