Mic*_* S. 3 linux console curl owncloud
我写了一个应用程序,应该将一些文件上传到几个移动设备.到现在为止,我正在使用Dropbox,我有一个应用程序(https://www.dropbox.com/developers),因此我可以将任何数据上传到客户端Dropbox.
现在我想切换到owncloud,因为一些安全问题.我已经读过这个: 以编程方式将文件上传到ownCloud服务器
但不幸的是它没有帮助.
我试过了
curl -X PUT -u username:password "http://myserver.com/owncloud/remote.php/webdav/test" -F f=@"/tmp/test"
该文件已上传,但出现了问题:某些标题已添加到我的文件中.
原始测试文件:
测试
上传的文件:
-------------------------- 00c5e21306fd0b2d Content-Disposition:form-data; NAME = "F"; filename ="test"Content-Type:application/octet-stream
Dies 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>
但结果更糟!
谁能告诉我,我做错了什么?
小智 9
-F表示表单上传,您应该使用--data-binary:
curl -X PUT -u username:password 
"http://myserver.com/owncloud/remote.php/webdav/test" --data-binary @"/tmp/test"