2011-11-17 90 views

回答

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.

從那裏,讓我們做我們的Couch 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,以適應你的沙發數據庫設置,你很好去!

+1

如果文件很大,可能需要以塊的形式發送,在這種情況下,頭文件會包含類似這樣的內容:'{「Content-Type」,「multipart/form-data」}' –

相關問題