2011-11-17 11 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.jpgमैं ibrowse का उपयोग कर CouchDB में किसी दस्तावेज़ में अनुलग्नक कैसे अपलोड करूं?

और यह काम किया ...

तो, मैं एक ही ibrowse का उपयोग कर प्राप्त कर सकते हैं? ===============================

उत्तर

3

स्वाभाविक रूप से, एक फ़ाइल अपलोड HTTP POST है। अब पहले एरलांग कोड का टुकड़ा लिखें जो HTTP/1.1 POST with Ibrowse करता है।

 
%% 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.

वहां से, हमारी सोफे डीबी चीज करते हैं।

 
-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

यदि फ़ाइल बड़ी है, तो इसे भाग में भेजने की आवश्यकता हो सकती है, जिसमें हेडर में कुछ ऐसा शामिल होगा: '{" सामग्री-प्रकार "," मल्टीपार्ट/फॉर्म-डेटा "}' –

संबंधित मुद्दे

 संबंधित मुद्दे