Flexでflash8のコンポーネントを利用してファイルアップロード

2005年10月01日(土) 10:57

Flex1.5でJavaScript連携をせずにファイルアップロードが出来るようになった。

Flex1.5で生成されたswfからflash8のswfをロードして、flash8の新機能であるFileReferenceクラスを利用するという手法で、Flex1.5からすぐさま使うことの出来るswfつきのサンプルがここ(リンク)にある。

おかしくないか?というのは、2点ある。
  1. たいしたことではないが、サンプルはそのままでは動かない。
    存在しないTextAreaのインスタンス(taってやつ)を参照しているmxmlがある。
    #これはTextAreaを作るか、該当箇所をコメントアウトすればいい。
  2. ヘッダに書かれているboundaryの文字列とボディ部分に出てくる文字列のケースが一致しない
    これはFileReferenceクラスの問題ではないかと推測される(WindowsXP+Flash8.0.22?)。
    文字列をignoreCaseで比較すれば一致するのでファイルを無理矢理取得することは出来るけど何だかなぁ。
    これまた確認していないけど、StrutsのFileUpload(正確にはcommonsのFileUpload)が使用できない(例外が出る)のはこのためではないかと。
    それともおいらのパースが間違ってる?
いつもMacromediaのFlexサンプルを試していて思うのは、このサンプル試したのか?というところ。
個人の趣味ブログじゃ無いんだから(といって逃げる)、最低限のことはやろうよ。

ただ、Firefoxでも別画面(HTML)でファイルアップロードする必要が無くなったのは喜ばしい。
簡単にファイル参照できて、簡単にCGIに投げられる。
#CGIにしか投げられない(RemoteServiceに投げる方法誰か教えてー、HTTPのセッションとFlashGatewayのセッションが同期できないんだよー。オープンソース万歳ぃ。。。)。

あとMacromediaで上記2の問題が発生しないのはcfmが受け手のコードしか書いていないからか?
ある意味仕方ないんだけど、サンプルにつけるサーバサイドのコードはcfmやめて欲しい。
cfmのコンポーネントで一気にファイル受け手保存されても(つまりタグ一つ)、わからんっつうの。
そもそもそのコンポーネント自体動きが怪しくねぇか?boundaryの文字列ignoreCaseしてね?

はやくadobeがマシな会社にしてくんないかなぁ。
#あるいは誰か、おいらをウィザードにしてくれ・・・


 
ponybadge

Powered by

Feedbacks

Tweets

Tags

Calendar