curl - 将本地文件上传到 url 的正确 curl 命令

标签 curl post file-upload

您好,我正在使用 cURL 通过 POST 方法将 pdf 文件上传到远程服务器。 我尝试了几种变体,得到了几种不同的消息(错误),其中两个最重要:

curl -X POST https://waapi.pepipost.com/api/v2/media/upload/ -H 'Authorization: Bearer myAuthorizationToken' -H 'Content-Type: document' "@C:\Users\Slomil\Desktop\UserGuide.pdf" 

错误 curl: (3) Port number ended with '\'。 此外,我尝试将地址更改为“/”,因此新的 curl 命令看起来像

curl -X POST https://waapi.pepipost.com/api/v2/media/upload/ -H 'Authorization: Bearer myAuthorizationToken' -H 'Content-Type: document' "@C:/Users/Slomil/Desktop/UserGuide.pdf"

并收到错误 curl: (1) Protocol "@C"not supported or disabled in libcurl
我还在 stackoverflow 上搜索了以前关于该问题的答案,并尝试将该帮助用作我的新 cURL 命令,但也没有成功。
有人可能知道这里的问题是什么吗?我以为我的文件地址是错误的..但不知道在命令中还应该怎么写..这里我只将地址从 "\" 更改为 "/",以为地址有问题,可能在那些斜杠中。非常感谢!:)

最佳答案

“将文件上传到 URL”的方法不止一种,因此除非您提供更多详细信息,否则我们实际上无法知道。

但很明显,您的命令行中缺少 -d 或 -F 选项,您应该删除 -X POST

多部分模板

如果您使用分段上传,这是大多数“上传”到 HTTP 的方式,它可能是这样的:

curl https://waapi.pepipost.com/api/v2/media/upload/ -H 'Authorization: Bearer myAuthorizationToken' -F "file=@C:\Users\Slomil\Desktop\UserGuide.pdf"

请注意,此命令行将上传部分设置为获取名称文件,您应该将其更改为您想要的名称。

“常规”POST

如果您只想在 POST 中发送“原始”二进制文件(您的 Content-Type 设置可能表明您想要),请像这样使用 --data-binary:

curl https://waapi.pepipost.com/api/v2/media/upload/ -H 'Authorization: Bearer myAuthorizationToken' -H 'Content-Type: document' --data-binary "@C:\Users\Slomil\Desktop\UserGuide.pdf"

(我从问题中复制了 Content-Type,尽管它看起来不寻常和奇怪。)

关于curl - 将本地文件上传到 url 的正确 curl 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63203986/

相关文章:

c++ - 如何在不下载 cURL 二进制获取请求中的文件的情况下获取文件的长度

javascript - 使用 Javascript 触发 IE9 文件输入

php - codeigniter 上传无法在 Linux 上运行

javascript - 跨浏览器平台独立http图片上传库(mac/linux/windows/ipad)

r - 在 R 代码中传递 pfx 证书或在 R 中将 pfx 证书转换为 pem

cURL - 执行命令并将 Json 结果保存到文件?

linux - 如何请求 curl http 并解析 shell 脚本中的 JSON 响应?

从 POST 获取InputStream 时出现 JAVA EOFException

传递 Null 参数的 WCF 调用

PHPT - 无法运行使用 --POST_RAW-- 的示例测试