トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   サーバ関連【CGI・FCS・XMLSocket etc】
     Flashで画像掲示板を作りたい
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kumacre
Åê¹ÆNo.37713
投稿日時: 2008-2-21 13:40
新米
居住地:
投稿: 5
使用環境:
MacOS X,Flash8
Flashで画像掲示板を作りたい
はじめまして、kumacreと申します。よろしくお願いします。

Flashで画像掲示板を制作したく、
http://www.flash-jp.com/modules/newbb/viewprint.php?order=ASC&topic_id=2054&forum=6
などを参考にFlash+javascript+CGIで
『main』と『dummy』という名の2つのフレーム構造にし、
『main』フレームにはFlashの本体とFlashのボタンを押したときに呼び出すjavascriptを埋め込んだhtml、
『dummy』フレームには画像掲示板の書き込み用cgiを設置し

Flashの画像選択ボタンを押したらjavascriptで画像選択表示、
Flashのフォームに記入し、ボタンを押したらjavascriptで下段フレームのcgiのフォームに値を入力、
Flashの送信ボタンを押したらjavascriptでcgiのsubmitボタンを押して送信

という方法で制作していました。

画像選択ボタンを押しjavascriptを呼んで画像選択をすると、cgiのフォーム部に選択したファイルが表示されます。
その後、送信しようとFlashの送信ボタンを押しても全く反応せず困っています。
どなたか教えていただけませんでしょうか。よろしくお願いします。

FlashのボタンのActionscript

getURL("java script:fileopen();");

getURL("java script:upload();");


Flashから呼び出すjavascript
function fileopen(){
	parent.dummy.document.pbbs.upfile.click();
}

function upload(){
	parent.dummy.pbbs.submit();
}


画像掲示板の書き込み用cgiのフォーム部
<form name="pbbs" action="$script" method="POST" enctype="multipart/form-data">
題 名<input type="text" name="xtitle" size="30"><br>
メッセージ<textarea name="comment" cols="40" rows="10" wrap="soft"></textarea><br>
<input type="file" name="upfile" size="28"><br>
<input type=submit value="送信する"><input type=reset value="リセット">
</form>


また他に調べていると
FileRefernceで画像の送信は可能だが画像送信とテキストは同時に送ることができない。
postDataを使うと一緒に送ることができるなど見かけたのですが、
Flashで画像掲示板を制作するとして、一般にどのような方法で作られているものなのでしょうか。
こちらも教えていただけたらと思います。よろしくお願いします。
ニノミヤ カズノリ
Åê¹ÆNo.37723
投稿日時: 2008-2-22 11:18
職人
居住地: 東京
投稿: 430
使用環境:
CS4
.4.11, .5.7
XP Pro(sp3)
Flash Player 10,0,22,87,
AIR 1.5.1,
IE 5.5 & 6 & 7 & 8,
Firefox 2.0.0.20 & 3.0.11 & 3.5,
Opera 9.64,
Safari 4,
Google Chrome 2.0.172.31,
Netscape 7.1
Re: Flashで画像掲示板を作りたい
引用:
kumacreさんは書きました:
画像選択ボタンを押しjavascriptを呼んで画像選択をすると、cgiのフォーム部に選択したファイルが表示されます。
その後、送信しようとFlashの送信ボタンを押しても全く反応せず困っています。
どなたか教えていただけませんでしょうか。よろしくお願いします。

引用:
<form name="pbbs" action="$script" method="POST"enctype="multipart/form-data">
題 名<input type="text" name="xtitle" size="30"><br>
メッセージ<textarea name="comment" cols="40" rows="10" wrap="soft"></textarea><br>
<input type="file" name="upfile" size="28"><br>
<input type=submit value="送信する"><input type=reset value="リセット">
</form>

単純に、赤で示した部分に全角スペースが入っているのが原因で、
enctypeがうまく指定できていないのではないでしょうか。
しかし、input要素のtype属性『file』の操作ってIEでしか出来なかったと思うのでかなり限定されそうな技ですね。
kumacre
Åê¹ÆNo.37737
投稿日時: 2008-2-23 14:44
新米
居住地:
投稿: 5
使用環境:
MacOS X,Flash8
Re: Flashで画像掲示板を作りたい
ニノミヤさん、ありがとうございます。
早速、修正してみたのですが、やはり反応しませんでした。

引用:
しかし、input要素のtype属性『file』の操作ってIEでしか出来なかったと思うのでかなり限定されそうな技ですね。

そうなんですね。
この方法はなく、別の方法を考えた方がよろしいのでしょうか。
ニノミヤ カズノリ
Åê¹ÆNo.37739
投稿日時: 2008-2-23 23:10
職人
居住地: 東京
投稿: 430
使用環境:
CS4
.4.11, .5.7
XP Pro(sp3)
Flash Player 10,0,22,87,
AIR 1.5.1,
IE 5.5 & 6 & 7 & 8,
Firefox 2.0.0.20 & 3.0.11 & 3.5,
Opera 9.64,
Safari 4,
Google Chrome 2.0.172.31,
Netscape 7.1
Re: Flashで画像掲示板を作りたい
引用:
kumacreさんは書きました:
早速、修正してみたのですが、やはり反応しませんでした。

そうですか。反応しないとなるとJSの辺りが怪しいですね。
いや、もしかしたらMac環境が関係しているかもしれません。

enctypeを修正した後、
こちらの環境(Window XP(SP2) IE6,7)でテストしましたが、
正常にファイルアップロードされました。

引用:
kumacreさんは書きました:
引用:
しかし、input要素のtype属性『file』の操作ってIEでしか出来なかったと思うのでかなり限定されそうな技ですね。

そうなんですね。
この方法はなく、別の方法を考えた方がよろしいのでしょうか。

個人的に、このやり方はオススメしません。
なぜなら先にも述べてますが、IEのみしか使えない技ですし、
正直Mac環境で動くのか怪しいと思っています。

やはりFlashでファイルアップロードを行うのであれば、
FileReferenceクラスを使うべきです。
使い方に関してはこちらをご参考ください。
FileReferenceを使ってみる (2)

また、同時に値を送信したい場合ですが、
Flash8をお使いであれば少し工夫が必要です。

ご存知の通り、ファイルアップロードと同時に値をPOSTするにはpostDataプロパティを使います。
ただ、このプロパティはCS3において追加された物ですので、
Flash8にて下記の使い方をするとエラーが生じます。
var fr:FileReference = new FileReference();
fr.postData = "post1=hoge&post2=hogehoge";

これを回避する為に、Flash8では[]配列アクセス演算子等を使って値を代入して下さい。
var fr:FileReference = new FileReference();
fr["postData"] = "post1=hoge&post2=hogehoge";

これでファイルアップロードと同時に値を送信する事が可能です。

さらに別の方法を考えると、kumacreさんが参考にされたリンク先のtomohiroさんの回答が参考になるでしょうか。
うじゅ
Åê¹ÆNo.37740
投稿日時: 2008-2-24 0:52
半人前
居住地:
投稿: 31
使用環境:
WinXP
MX Pro2004, Flash8
Re: Flashで画像掲示板を作りたい
JS+HTMLについてアドバイスですが、
<input type="file"/> は特にIE限定では無いと思います。IEが出る前のNetscapeの古いバージョンの時代でも使えたか覚えがあります(モザイク時代までは知りません)。

むしろ、プラットフォーム・ブラウザを限定しているのは、
parent.dummy.document.pbbs.upfile.click();
parent.dummy.pbbs.submit();

だと思います。

DOMブラウザであれば、対象のHTMLエレメントにIDをつけて、
<input type="file" name="upfile" size="28" id="upfile"/>
.....
parent.dummy.document.getElementById("upfile").click()

等としてエレメントを取得するか、DOM以前にも対応するなら DreamWeaverのMM_findObj を使うかするといいかと思います。


----------------
UJU

ニノミヤ カズノリ
Åê¹ÆNo.37741
投稿日時: 2008-2-24 1:25
職人
居住地: 東京
投稿: 430
使用環境:
CS4
.4.11, .5.7
XP Pro(sp3)
Flash Player 10,0,22,87,
AIR 1.5.1,
IE 5.5 & 6 & 7 & 8,
Firefox 2.0.0.20 & 3.0.11 & 3.5,
Opera 9.64,
Safari 4,
Google Chrome 2.0.172.31,
Netscape 7.1
Re: Flashで画像掲示板を作りたい
引用:
うじゅさんは書きました:
JS+HTMLについてアドバイスですが、
<input type="file"/> は特にIE限定では無いと思います。IEが出る前のNetscapeの古いバージョンの時代でも使えたか覚えがあります(モザイク時代までは知りません)。

むしろ、プラットフォーム・ブラウザを限定しているのは、
parent.dummy.document.pbbs.upfile.click();
parent.dummy.pbbs.submit();

だと思います。

DOMブラウザであれば、対象のHTMLエレメントにIDをつけて、
<input type="file" name="upfile" size="28" id="upfile"/>
.....
parent.dummy.document.getElementById("upfile").click()

等としてエレメントを取得するか、DOM以前にも対応するなら DreamWeaverのMM_findObj を使うかするといいかと思います。

ああ、そうなんですね
自分のMacとWindows XPで反応しなかったんで勘違いしていました。
別のPCでテストしてみたら反応しました。
kumacre
Åê¹ÆNo.37744
投稿日時: 2008-2-24 16:15
新米
居住地:
投稿: 5
使用環境:
MacOS X,Flash8
Re: Flashで画像掲示板を作りたい
ニノミヤさん

引用:
enctypeを修正した後、
こちらの環境(Window XP(SP2) IE6,7)でテストしましたが、
正常にファイルアップロードされました。

再度、はじめから作り直してみたらアップロードできました。
原因は結局わからずじまいなのですが、お騒がせしました。

引用:

ご存知の通り、ファイルアップロードと同時に値をPOSTするにはpostDataプロパティを使います。
ただ、このプロパティはCS3において追加された物ですので、
Flash8にて下記の使い方をするとエラーが生じます。
var fr:FileReference = new FileReference();
fr.postData = "post1=hoge&post2=hogehoge";

これを回避する為に、Flash8では[]配列アクセス演算子等を使って値を代入して下さい。
var fr:FileReference = new FileReference();
fr["postData"] = "post1=hoge&post2=hogehoge";

これでファイルアップロードと同時に値を送信する事が可能です。


postDataはCS3で追加されたものでしたので、Flash8では使用できないと思っていました。
教えていただいた工夫で使用することができるのですね。
早速やってみたいと思います。いろんな情報をありがとうございます。

postDataの方法でわからない点がありましたら、
引き続き質問したいと思います。ありがとうございました。
kumacre
Åê¹ÆNo.37745
投稿日時: 2008-2-24 16:19
新米
居住地:
投稿: 5
使用環境:
MacOS X,Flash8
Re: Flashで画像掲示板を作りたい
うじゅさん

引用:
parent.dummy.document.pbbs.upfile.click();
parent.dummy.pbbs.submit();

だと思います。

DOMブラウザであれば、対象のHTMLエレメントにIDをつけて、
<input type="file" name="upfile" size="28" id="upfile"/>
.....
parent.dummy.document.getElementById("upfile").click()

等としてエレメントを取得するか、DOM以前にも対応するなら DreamWeaverのMM_findObj を使うかするといいかと思います。


自分の方法がプラットフォーム・ブラウザを限定しているとは知りませんでした。
教えていただいた方法でやってみたいと思います。
ありがとうございました。
ニノミヤ カズノリ
Åê¹ÆNo.37746
投稿日時: 2008-2-24 17:08
職人
居住地: 東京
投稿: 430
使用環境:
CS4
.4.11, .5.7
XP Pro(sp3)
Flash Player 10,0,22,87,
AIR 1.5.1,
IE 5.5 & 6 & 7 & 8,
Firefox 2.0.0.20 & 3.0.11 & 3.5,
Opera 9.64,
Safari 4,
Google Chrome 2.0.172.31,
Netscape 7.1
Re: Flashで画像掲示板を作りたい
引用:
kumacreさんは書きました:
postDataはCS3で追加されたものでしたので、Flash8では使用できないと思っていました。

同じ考えの方が結構いらっしゃるようです。
こちらで説明とサンプルを合わせたページを作ってみましたので、
ご参考ください。

【Flash8/AS1.0】FileReference.postData プロパティの扱い方
kumacre
Åê¹ÆNo.37749
投稿日時: 2008-2-25 2:34
新米
居住地:
投稿: 5
使用環境:
MacOS X,Flash8
Re: Flashで画像掲示板を作りたい
引用:
同じ考えの方が結構いらっしゃるようです。
こちらで説明とサンプルを合わせたページを作ってみましたので、
ご参考ください。


早速ブログの方、拝見させていただきました。
サンプルを参考にして、作りたいと思います。
サンプルまで作っていただき、本当にありがとうございます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops