ファイルを選択してアップする場合は問題ないのですが、決まったファイルのアップロード(別システムから出力されるデータなど)を行う場合には不便です。
なのでBlazeDSでアップロードしてやりましょう。
GrailsでBlazeDSは過去のエントリを参照に。
BlazeDSではActionScriptの byte[] と Java の byte[] をコンバートして通せるようなので、ファイルをbyteにして投げてやります。
- private function blazeDsUpload():void {
- // ファイルをバイト配列で読み込む
- var file:File=new File("/opt/hoge.jpg");
- var fs:FileStream=new FileStream();
- var bytes:ByteArray=new ByteArray();
- fs.open(file, FileMode.READ);
- fs.readBytes(bytes, 0, file.size);
- //定義してあるRemoteObjectへパラメーターとして渡す
- remoteObject.upload({"Filedata":bytes});
- }
Grailsのサービス側で受け取るサンプル
byte[]データをファイルへ収めてやります。
- def upload(params) {
- def fileBytes=params["Filedata"]
- def file=new File("/work/hoge.jpg")
- file.withOutputStream { out ->
- out.write(fileBytes)
- }
- }
0 件のコメント:
コメントを投稿