2009-09-17 11 views
7

Actualmente estoy jugando con couchdb y probando la característica 'archivos adjuntos independientes', que se describe cerca de la parte inferior de this page.Creando un archivo adjunto independiente de couchdb usando cURL

Estoy tratando de usar la función curl's --data-urlencode para enviar la solicitud de creación, que solo funciona a medias. Puedo crear el archivo adjunto y recuperarlo, pero el campo Tipo de contenido es incorrecto, por lo que la imagen no se mostrará correctamente.

Para ser más exactos CouchDB parece funcionar mediante la devolución de los datos adjuntos utilizando el mismo tipo de contenido que fue publicada en. (Que es perfectamente razonable OMI) Mi problema es rizo no envía el código correcto. Aquí están los detalles;

curl -vX PUT http://localhost:5984/dafttest/666/attachment --data-urlencode image/[email protected]_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 
> 

Así que la versión corta de esta pregunta es; ¿Cómo puedo obtener cURL para enviar el tipo de contenido correcto?

EDIT:

Libero que mi otro error fue usar --Hojas-urlencode, cuando a conseguir que funcione necesito utilizar @filename binaria --Hojas junto con la opción -H sugirió que Dale .

Respuesta

5

Puede add headers with the -H/--header switch, por lo que añadir una cabecera de tipo de contenido image/jpeg, agregar esto a su comando:

-H "Content-Type: image/jpeg"

+0

también Necesito --data-binary @filename not --data-urlencoded, he editado mi publicación en caso de que alguien más se encuentre con esto. –

Cuestiones relacionadas