7

私は現在、couchdb をいじり、このページの下部で説明されている「スタンドアロンの添付ファイル」機能をテストしています。

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 を取得して正しい Content-Type を送信するにはどうすればよいですか?

編集:

私の他の間違いは --data-urlencode を使用することでした。それを機能させるには、Dale が提案した -H オプションと一緒に --data binary @filename を使用する必要があります。

4

1 に答える 1

5

-H/--header スイッチを使用してヘッダーを追加できるため、image/jpeg コンテンツ タイプのヘッダーを追加するには、これをコマンドに追加します。

-H "コンテンツ タイプ: 画像/jpeg"

于 2009-09-17T15:07:46.457 に答える