You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Guzzle通过NextCloud WebDAV API上传字符串出现冗余内容问题

解决NextCloud WebDAV上传字符串时内容带冗余信息的问题

你用multipart方式上传是错误的,WebDAV的PUT接口不需要multipart格式,直接把字符串作为请求体发送即可。当前代码里使用Guzzle的multipart选项,会让Guzzle自动生成multipart分隔边界和表单头信息,这些内容被NextCloud当成文件内容保存,才出现了冗余信息。

修正后的代码

function sendToNextCloud(string $fileName, string $content)
{
    $client = new Client();
    $res = $client->put('http://nextcloud:8080/remote.php/webdav/' . $fileName, [
        'headers' => [
            'Authorization' => 'Basic 你的Base64编码凭证', // 替换为实际的"用户名:密码"Base64编码值
            'Content-Type' => 'text/html', // 根据上传内容设置对应类型,纯文本用text/plain
        ],
        'body' => $content,
    ]);
    
    if ($res->getStatusCode() == 201) {
        echo 'Successfully sent';
    }
    
    return "test";
}

关键调整说明

  • 移除multipart选项,改用body参数直接传递要上传的字符串内容
  • 正确设置Content-Type请求头,NextCloud会根据该头识别文件类型
  • 确保Authorization头是正确的Base64编码格式(格式为Basic [Base64(用户名:密码)])

内容的提问来源于stack exchange,提问作者Marvin Tröster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 02:06:27