如何使用ibrowse将附件上传到CouchDB中的文档?

For*_*rtu 5 erlang couchdb

我用curl上传了一个图像文件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实现同样的目标呢?===============================

Muz*_*hua 3

当然,文件上传是一个HTTP POST . 现在让我们首先编写一段 Erlang 代码,它的作用是HTTP/1.1 POST with Ibrowse

%% 假设 Ibrowse 应用程序位于代码路径中
确保_ibrowse()->
    情况(ibrowse)的
        未定义 -> ibrowse:start();
        _ -> 好的
    结尾。
帖子(链接、数据、标题)-> 确保_ibrowse(), 尝试 ibrowse:send_req(Link,Headers,post,Data) 的 { _, _, _,结果} -> io:format("\n\t文件已上传。返回: ~p~n",[结果]); EE -> {错误,EE} 抓住 XX:XX2 -> {错误,XX,XX2} 结尾。

从这里开始,我们开始做 Couch DB 的事情。

-define(链接,“http://localhost:5984/DBNAME/DOCID/Penguins?rev=LATEST_REVISION”)。
%% File_path 必须是有效文件! 上传文件(完整文件路径)-> 案例文件:read_file(Full_file_path) of {好的,二进制} -> post(?Link,Binary,[{"Content-Type","image/jpeg"}]); 错误 -> 错误 结尾。

就这样吧!您需要做的就是自定义您的宏Link以适合您的沙发数据库设置,然后就可以开始了!