Curl Global Community
Curl ORB でファイルをアップロード、ダウンロードする方法について - Printable Version

+- Curl Global Community (http://communities.curl.com)
+-- Forum: Discussions (http://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (http://communities.curl.com/forumdisplay.php?fid=2)
+--- Thread: Curl ORB でファイルをアップロード、ダウンロードする方法について (/showthread.php?tid=178)



Curl ORB でファイルをアップロード、ダウンロードする方法について - yuarai - 08-02-2011

はじめまして。

Curl ORBでファイル(エクセル、ワード、PDF)のアップロード、ダウンロードを行いたいと考えているのですが可能でしょうか?
可能であればどのように行えばいいのでしょうか?
教えてください。


RE: Curl ORB でファイルをアップロード、ダウンロードする方法について - hokada - 08-02-2011

CurlのByteVec ({FastArray-of byte})かByteArray({Array-of byte})にバイナリデータを格納し、そのオブジェクトを渡せば可能です。

もっと簡単な方法は、ORBはSerializableBinaryFileというクラスがあり、以下の方法で利用できます。

Code:
|| アップロードの場合
def sbf = {SerializableBinaryFile.from-url {url "in.png"}}
|| ORBを使い、ここで引数にsbfを渡してメソッドコール

|| ダウンロードの場合、writeメソッドでファイルに書き込めます。
|| ORBを使い、ここで戻り値のSerializableBinaryFileオブジェクトを取得
def return-val:SerializableBinaryFile = ....
{bin-file.write {url "out.png"}}

但し、上記のようにORBを使うと簡単に実現できますが、大きなファイルを大量にやり取りするようでしたら、この方法は一度メモリ上にオブジェクトを作ることになるので、ストリームをそのまま直接使った方が良いかもしれません。