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
この記事に対するトラックバック
この記事に対するコメント