PloneへのFlashを使ったファイルアップロード

FlashのFileReferenceListで、まとめてファイルを取得することができる。このFileReferenceListは、browseメソッドを実行することでファイルダイアログ選択することができる。選択後、FileReferenceオブジェクトのArrayを持つので、このFileReferenceオブジェクトのuploadメソッドを使うことでファイルアップロードが出来る。

いろんなサンプルでは、取得したFileReferenceのArrayに対して、For each文を使いFileRefence.upload()を行いアップロードをしている。

ただ、この方法では、一気にPloneに対してアップロードを行うため、ほぼ、Confrict errorを起こす。

回避方法として、サンプルのようなFor eachを使わず、一つづつ確実にアップロードを行う。FileRefenceのFile upload completeイベントで、次のFileReferenceのuploadを行うようにする。

conflict errorを起こしてもZopeは再試行してくれるのだが、FileReference.upload()の仕様上、起こされると面倒な処理を記述する必要があるので、なくすように心がけた。

Flash Player 10以上で作っていいのなら、こんな面倒なことをしなくてもよさそうだけど・・・。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください