2011-11-17 8 views
5

画像ファイルPenguins.jpgをアップロードする際にカールを使用しました。たとえば: C:\curl>curl -vX PUT -H "Content-Type: image/jpeg" http://localhost:5984/DBNAME/DOCID/Penguins?rev=LATEST_REVISION --data-binary @Penguins.jpgibrowseを使用してCouchDBのドキュメントに添付ファイルをアップロードするにはどうすればよいですか?

、それが働いた...

をだから、どのように私はibrowseを使用して同じことを達成することができますか? ===============

答えて

3

もちろん、ファイルのアップロードはHTTP POSTです。 HTTP/1.1 POST with Ibrowseを実行するErlangコードを最初に書くことができます。

 
%% Assumes Ibrowse application is in Code path 
ensure_ibrowse()-> 
    case whereis(ibrowse) of 
     undefined -> ibrowse:start(); 
     _ -> ok 
    end.
post(Link,Data,Headers)-> ensure_ibrowse(), try ibrowse:send_req(Link,Headers,post,Data) of { _, _, _,Result} -> io:format("\n\tFile Uploaded. Return: ~p~n",[Result]); EE -> {error,EE} catch XX:XX2 -> {error,XX,XX2} end.

そこから、私たちのカウチDBの事をさせてください。

 
-define(Link,"http://localhost:5984/DBNAME/DOCID/Penguins?rev=LATEST_REVISION").
%% File_path must be a valid file ! upload_file(Full_file_path)-> case file:read_file(Full_file_path) of {ok,Binary} -> post(?Link,Binary,[{"Content-Type","image/jpeg"}]); Error -> Error end.

よろしく!マクロLinkをあなたのソファのDB設定に合わせてカスタマイズするだけでいいです。

+1

ファイルが大きい場合は、チャンクで送信する必要があります。この場合、ヘッダには次のようなものが含まれます。 '{" Content-Type "、" multipart/form-data "}' –

関連する問題