08-02-2011, 02:02 PM
08-02-2011, 03:36 PM
CurlのByteVec ({FastArray-of byte})かByteArray({Array-of byte})にバイナリデータを格納し、そのオブジェクトを渡せば可能です。
もっと簡単な方法は、ORBはSerializableBinaryFileというクラスがあり、以下の方法で利用できます。
但し、上記のようにORBを使うと簡単に実現できますが、大きなファイルを大量にやり取りするようでしたら、この方法は一度メモリ上にオブジェクトを作ることになるので、ストリームをそのまま直接使った方が良いかもしれません。
もっと簡単な方法は、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を使うと簡単に実現できますが、大きなファイルを大量にやり取りするようでしたら、この方法は一度メモリ上にオブジェクトを作ることになるので、ストリームをそのまま直接使った方が良いかもしれません。