nod::ぶろぐ:RIA::Flex/AIR/Flash

FlashやFlex,(Ajax),S2Flex2,ActionScript3,yui-frameworks,Akabanaプロジェクトなどのメモ帳

Flash8/Flex1.5でのファイルアップロード(Flex2対応がほしい)

Flash(Player)8の新機能のひとつであるファイルのアップロード/ダウンロードサポートを利用した、ファイルブラウザ Flash 8 FileBrowserが公開されていました。いまはバージョンアップしてV1.1になっています。

アップロードを受け付けるサーバ側はPHPで実装されているようです。
Flash8の機能を使ったサンプルはこれまで何度かみていましたがこの Flash 8 FileBrowserは、demoを見ると複数ファイルのアップロードや、アップロードされたファイルのプレビュー、複数ファイルのダウンロードなどができたりと機能豊富です。

ソースコードも公開されておりダウンロードできます。

ダウンロードしたファイルを展開すると、FDTのプロジェクトファイルになっているのでFDTがあればEclipseでそのままimportすることができそう。

ファイルアップロード/ダウンロードは頻度が高いので参考になりそうです。

Flex版を探したところ、Flex1.5版のファイルアップロードスタータキットがありました。
これは、Flash8で新機能になったものを利用しているのではなくFlex1.5でJavaScriptとLocalConnectionを利用して実現しています。

Flex2のmxml + AS3 + javaでの実装サンプルがあればいいなあと思ったのですが残念ながら見つけられませんでした。どなたか知っていましたら教えてください。m(__)m

Flash8 FileBrowser
http://www.betriebsraum.de/blog/2006/01/13/download-flash-8-file-browser/

commons-fileuploadとの組み合わせ
http://blog.xuite.net/ben19770209/ASBeginner/4003158

ほそさんのエントリ(Flashのアップロード + commons-fileupload)
http://d.hatena.ne.jp/hoso-kawa/20051125#1132848638

Laszlo+Flash8のエントリ
http://laszlo.jp/wiki/index.php?TIPS%2FOpenLaszlo%2BFlashPlayer8

OpenLaszloフォーラムにあるコード
http://www.laszlosystems.com/developers/community/forums/showthread.php?s=&threadid=3856

Flex2.0でのファイルアップロード
まだ見つけられていません。mxmlとAS3で
どなたか作ってください。m(__)m

Flex1.5でのファイルアップロード
http://www.geocities.jp/takuji_kawata/flexsamples/fileupload/

[Flex1.5] - Flex File Upload Project - Starter
http://www.flex888.com/2005/04/27/flex-file-upload-project-starter.html

Posted by nod at 2006年01月17日 02:22 | コメント (15) | トラックバック (0) | Clip!! | Clip!! | このエントリーを含むはてなブックマーク |digg it! |del.icio.us it!

この記事に対するコメント

はじめまして。Laszlo勉強中のものです。
Flexは詳しくないのですが、ちょっとAdobe Labsで探してみました。

http://labs.macromedia.com/wiki/index.php/ActionScript_3:examples

ここに「File Upload」とあるので参考になりますかね?
どうもColdFusionとの組み合わせのようですが。

Posted by: webdev at 2006年01月17日 12:45

「File Upload」サンプルですがmxml,cfm 両方のアップロード先等のURLを変更したらすんなり動きましたよ。
ソースは本当にベアボーンって感じですけど ^^;
【flash.net.FileReference】クラスを利用しています。
なのでFlex2ならではではないですね。
でも、ファイルをアップロードする前に
ファイルサイズの取得ができるので便利です。

Posted by: ぺぺ at 2006年01月18日 11:43

webdevさん(でいいのでしょうか)情報ありがとうございます。
Labsにあったんですね。灯台下暗しだ...
確認してみます。ありがとうございました。
Laszloやっているんですね。
LaszloとFlexは似て非なるものかなとも思いますが相互に参考になることは多いと重います。

今後参考にさせていただきます。

pepeさん
サンプルの確認ありがとうございます。
cfmでやるならそのままでもできるんですね。

ということは、LabsのサンプルとFlash8 FileBrowserを参考にすればFlex2.0 + jakarta file uploadで複数ファイルアップロードができるってことですね・>飛躍しすぎ

試してみてください。m(__)m
それから今度勉強会等で会ったときには、声かけてくださいね。

Posted by: nod at 2006年01月18日 16:41

自分なりに調査してみました。

結論は、jakarta commons fileupload をつかったファイルアップロードは、できませんでした。

・ヘッダーとデータの行区切りが、CRLFになっていない
・最後の二文字が--ってのがない

理由は、これだと思います。

8.5 の betaでは、正しく動いてもらいたいです^^

ちょっと報告でした^^;

Posted by: arkw at 2006年01月20日 18:53

arkwさん どうもです。
FlashPlayer8ではできてる?のにFlashPlayer8.5はだめなんですね~。

単体のファイルでもできないんですかね。
できたらFXUGにアップしてもらえると助かります。
Adobeにfeedbackしましょ♪

Posted by: nod at 2006年01月20日 22:41

FlashPlayer8 と jakarta commons fileuploadの組合せの場合も、アップロードできませんでした。

理由は、Flash8.5と同様で、RFCどおりじゃないみたいなのが原因ですね。
もちろん単体の場合も同様ですね^^;

ご質問なんですが、
FXUGにアップってどうやったらできますか?

Posted by: arkw at 2006年01月23日 10:01

Flash Player8でもだめなんですね~(T_T)
現状サーバ側実装を替える(phpとかcfmとか?)なんでしょうか..

ファイルアップですがFXUGのページ(http://www.fxug.net/)からpukiwikiを選んで頂いて、新規にページを作ります。
内容はページタイトルだけでもかまいません。
その後に画面上部にある添付をクリックするとファイルアップロードする画面が表示されるはずです。

Posted by: nod at 2006年01月24日 08:41

こんにちは

現状ならサーバ側の実装を変えるしかないみたいです。


以下にページ作ってみました。
http://www.fxug.net/modules/pukiwiki/index.php?FileUpload

Posted by: arkw at 2006年01月24日 16:07

arkwさん。こんにちは。
ページ作成ありがとうございます~。
少なくとも現状のPlayerだとjakartaのfilepuloadでは対応できないってことですね。

作っていただいたページもみました。
TCPダンプはなにをお使いか教えていただけます?

コメントで長くなって申し訳ないです。

Posted by: nod at 2006年01月25日 09:54

初めまして、koma です。

クライアント:Open Laszlo(Flash8)
サーバ:Java Servlet(jakarta commons fileupload 1.1)

上記環境でのファイルアップロードが皆さんと同じようにうまく行かずここにたどり着きました。
しかし Web を検索して、jakarta commons fileupload のソースを修正する事により対応する方法を見つけました。

対応方法は以下の URL にありました。
http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002225.html

> In order to get file uploading to work with Flash Player 8 and Jakarta Commons File Upload on the server, we had to patch the File Upload server code to ignore the exception that was (correctly) being thrown on the server when the last section is processed.
>
> The class that needs to be patched is org.apache.commons.fileupload.FileUploadBase.
>
> You'll need to replace line 336:
> Map headers = parseHeaders(multi.readHeaders());
>
> ...with the following code:
> Map headers = null;
> try
> {
> headers = parseHeaders(multi.readHeaders());
> }
> catch (MultipartStream.MalformedStreamException e)
> {
> return items;
> }

上記のように修正した jakarta commons fileupload でファイルを受け取れる事を確認しましたので、是非試してみて下さい。(複数ファイルは未検証)
また色々と情報交換出来ればと思いますので、宜しくお願いします。

Posted by: koma at 2006年01月25日 19:09

komaさん、はじめまして。
おおっサーバ側のコードがjavaの成功例ですね。\(^o^)/
commmons-uploadの実装を変更して受け取ることは考えませんでした。
最後の方にFlashPlayerの時期リリースで修正されるらしいのですが(Flash Player 8 ? Flash Player 8.5)、当面は上記の方法で対応できそうです。

教えていただいたページにはASP.NETやPHPなどいろいろな実装が書かれていましたね。あれだけあれば何が来ても大丈夫そう(^_^;)
みんな困っていたのでしょうか。

ともあれありがとうございました。
そのうち複数ファイルとともに試してみます。

Flash 8やFlex,Open Laszlo,mtascなど生成方法はいろいろでも最終出力はswfなので参考になることは多いと思います。

これからもどうぞよろしくです。(^o^)丿

Posted by: nod at 2006年01月26日 02:29

おはようございます。
あんな感じのページでよかったですか???

TCPダンプは、vigilをつかってますよ。
よくつかってます。
AMF解析するときなど重宝しました。

commons-filepuloadの修正は、確かにありですね^^
奇しくも、自分も同時に解決策みつかっていたのですが…
サーバ側を変えても根本的解決ではないと思ったので、
commons-filepuloadの修正は、しませんでした^^;

Posted by: arkw at 2006年01月26日 11:36

arkwさん こんばんは。
ファイルアップロードのページ、ここでの内容も少しずつ反映していきましょう。
最初にページがあれば、変更や追記がしやすいと思います。それがwikiのよさ?ですよね。多分。
新サーバになって一度もページを作っていないので、少し落ち着いたらチャレンジしてみることにします。

vigilも、早速ダウンロードして使ってみました。
いまいちまだ使い方を把握できていない(無駄なものがいっぱいで欲しいものをうまくフィルタできない..)
のですが、ぼちぼち覚えていきますです。

サーバ側の対応がいらなくなるように、早く修正されたFlash Playerがでるといいですねぇ。

Posted by: nod at 2006年01月27日 02:31

Flex2 bate1になったことで、解決しました。
もちろん複数ファイルでも、いけました。

Posted by: arkw at 2006年02月01日 13:40

arkwさん 
β1がでてFlashPlayer8.5も8,5,0,212になっていましたね。

そんなのを見ている間にもう試されたのですね。早いなぁ。
私はまだdownloadもできていません。(>_<)
すっかり乗り遅れた感じです。

これでファイルアップロード対応のFlex-services.xmlエディタも夢ぢゃない?ですね。

Posted by: nod at 2006年02月02日 02:22

コメントを投稿する




保存しますか?



この記事のトラックバックURL


この記事に対するトラックバック

この記事に対するトラックバックはまだありません。



Flex.org - The Directory for Flex Get Adobe Flash Player Made with dreamweaverMade with fireworksPowered by Movable Type 3.36Powered by Wandering Wind
Copyright : [Articles] (C) nod::ぶろぐ:RIA::Flex/AIR/Flash All Rights Reserved.
[Comments/Trackbacks] ... Authors of those have rights.