我目前正在使用couchdb并测试“独立附件”功能,该功能在
this page底部附近有所描述.
我试图使用curl的–data-urlencode功能发送创建请求,只有一半工作.我可以创建附件并检索它,但Content-Type字段是错误的,因此图像将无法正确显示.
为了更准确,CouchDB似乎可以通过使用发布的相同Content-Type返回附件来工作.(这是非常明智的IMO)我的问题是curl没有发送正确的代码.这是细节;
curl -vX PUT http://localhost:5984/dafttest/666/attachment --data-urlencode image/jpeg@xi_on_beach.jpg * About to connect() to localhost port 5984 (#0) * Trying 127.0.0.1... connected * Connected to localhost (127.0.0.1) port 5984 (#0) > PUT /dafttest/666/attachment HTTP/1.1 > User-Agent: curl/7.19.4 (x86_64-pc-linux-gnu) libcurl/7.19.4 OpenSSL/0.9.8k zlib/1.2.3 > Host: localhost:5984 > Accept: */* > Content-Length: 495389 > Content-Type: application/x-www-form-urlencoded > Expect: 100-continue >
所以这个问题的简短版本是;如何让cURL发送正确的内容类型?
编辑:
我发布我的另一个错误是使用–data-urlencode,什么时候让它工作我需要使用–data binary @filename和Dale建议的-H选项.
解决方法
您可以
add headers with the -H/–header switch,因此要为image / jpeg内容类型添加标头,请将其添加到您的命令中:
-H “Content-Type: image/jpeg”