0

私はFlashの完全な初心者です(Flashで何も作成したことはありません)。私はWebアプリケーション(J2EEベース)に精通しており、Javascriptについてかなりの専門知識を持っています。

これが私の要件です。

ユーザーに(htmlフォームを介して)画像を選択してもらいたい。通常、投稿では、この画像はサーバーに送信され、後で提供するためにそこに保存される場合があります。私はそれを望んでいません。この画像をローカルに保存してから、HTTP経由でユーザーに提供したいと思います。

したがって、フローは次のようになります。1.「selectimageurl」:mywebsite.com/selectImageに移動します。

画像を閲覧して画像を選択します

これにより、クライアントで実行されているコード(Javascriptまたはフラッシュ)にローカルで制御が移り、クライアントマシンのどこかにイメージがローカルに保存されます。

  1. 「画像のURLを表示」に移動します:mywebsite.com/showImage

これにより、最終的には、画像を取得してレンダリングするクライアントコードがブラウザで実行されることになります(サーバーのラウンドトリップはありません)。

私は次のオプションを検討しました。

  1. HTML5ローカルストレージを使用します。私はフラッシュの完全な初心者なので、これを調べました。javascriptで画像を保存および取得するのはかなり簡単であることがわかりました(文字列のみが許可されていますが、base64でエンコードされた文字列の保存が少なくとも小さな画像で機能することを望んでいます)。ただし、サーバーのラウンドトリップなしでサーバーを指すhttp urlを介して画像を提供するにはどうすればよいですか?http://hacks.mozilla.org/category/fileapi/で興味深い記事を見ましたが、それはFirefoxでのみ機能し、最新のすべてのブラウザー(少なくともHTML5ローカルストレージをサポートするブラウザー)で動作する必要があります。

  2. フラッシュSharedObjectsを使用します。OK、これは良かったでしょう-唯一のことは、どこから始めればよいかわからないということです。これを行うためのアクションスクリプトのスニペットはいたるところに散らばっていますが、実際のhtmlページでそれらのスクリプトを使用する方法がわかりません:)ムービーなどを作成する必要はありません。画像を保存してローカルに提供するだけです。このルートに行くと、他の「文字列」をローカルに保存するためにも使用します。これを提案する場合は、これを行う方法の正確な手順(他のWebサイトへのポインタである可能性があります)を教えてください。理想的には、フラッシュ開発環境ソフトウェアにお金を払うのは避けたいです:)

ありがとうございました!

4

2 に答える 2

0

データ URIを使用してファイルを表示できます。基本的に、画像データ (およびプレフィックス) をsrc画像要素の属性として使用します。ファイルを base64 でエンコードされた文字列としてメモリに読み込む方法が既にわかっている場合は、データ URI を使用するのがおそらく画像を表示する最も簡単な方法です。

于 2010-06-06T18:18:55.497 に答える
0

OK私は次の解決策を実装することができました(誰かがコメントを持っているか、答えを知りたい場合に備えて)

  1. 画像を受け取り、base 64 でエンコードされたバージョンを返すサーバー側コードを作成しました。
  2. 隠し iframe トリックを使用して base 64 でエンコードされたデータを iframe に取得し、画像ソースをデータ uri に動的に変更して画像に格納しました

「隠された iframe トリック」について - 興味がある場合は、こちらに良い記事があります (www.openjs.com/articles/ajax/ajax_file_upload/response_data.php を参照)。

唯一の制限は、Base 64 でエンコードされた文字列が32Kを超えるイメージでは IE が機能しないことです。IE 8 のみが動作することに注意してください - IE 7 は私が信じているデータ uri をサポートしていません。

于 2010-06-13T01:28:48.813 に答える