linux – 使用curl将文件上传到owncloud
作者:互联网
我写了一个应用程序,应该将一些文件上传到几个移动设备.到现在为止,我使用的是Dropbox,我有一个App(https://www.dropbox.com/developers),所以我可以将任何数据上传到客户端Dropbox.
现在我想切换到owncloud,因为一些安全问题.我已经读过这个:
Uploading files to an ownCloud server programatically
但不幸的是它没有帮助.
我试过了
curl -X PUT -u username:password "http://myserver.com/owncloud/remote.php/webdav/test" -F f=@"/tmp/test"
该文件已上传,但出现了问题:某些标题已添加到我的文件中.
原始测试文件:
test
上传的文件:
————————–00c5e21306fd0b2d Content-Disposition: form-data; name=”f”; filename=”test” Content-Type:
application/octet-streamDies ist ein Test.
————————–00c5e21306fd0b2d–
虽然这对任何文本文件来说都很烦人,但它对任何二进制文件(如JPG等)都是一个灾难,因为它们在上传后无法再打开.
这就是为什么,我尝试了另一种可能的方式,其描述如下:
mischka@lappy:/tmp$curl -X PUT -u 'username:password' "http://myserver/owncloud/remote.php/webdav/test" --data-binary @"/tmp/test"
<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre\DAV\Exception\BadRequest</s:exception>
<s:message>expected filesize 19 got 0</s:message>
</d:error>
但结果更糟!
谁能告诉我,我做错了什么?
解决方法:
-F表示表单上传,你应该使用–data-binary代替:
curl -X PUT -u username:password
"http://myserver.com/owncloud/remote.php/webdav/test" --data-binary @"/tmp/test"
标签:linux,curl,console,owncloud 来源: https://codeday.me/bug/20190717/1489059.html