アップデート:
以下の Jacob の返信で説明されているように、FileReference.save の動作を制限または修正することはできません。この投稿のすべての基準に一致し、ジェイコブと話し合った落とし穴を回避する代替案 (サーバーは Apache/PHP) を誰か提案できますか?
編集を終了
FileReference.save() を使用して AS3 アプリから画像を保存しています。これは正常に動作するコードです:
var encoder:JPGEncoder = new JPGEncoder(80);
var byteData = encoder.encode(myBMD); //bitmap data object created earlier
var file:FileReference = new FileReference();
file.save(byteData, "myImage.jpg");
これにより、期待どおりにファイルの保存ダイアログが開きます。byteData を PHP に送信するのではなく、これを使用しています。これは、ユーザーが独自のファイル名を設定できる使い慣れたダイアログ ボックスをユーザーに表示してもらいたいためです。
問題は、ユーザーが自分のオペレーティング システムでファイル拡張子を表示するように構成している場合に発生します。私のようにです。つまり、保存ダイアログでは、下の画像に示すようにファイル名に拡張子が含まれているため、ユーザーはファイルの名前を変更するときにその拡張子を簡単に削除できます。このボックスのデフォルトのファイル タイプは「すべてのファイル」であるため、拡張子を削除すると、ファイルはタイプなしで保存されます。
保存ダイアログでファイルタイプを強制する方法を知らないので(私の優先ルートとなるものがある場合)、失敗しても、ユーザーが設定できる安全な方法を誰かが提案できますOSの標準ダイアログを使用してファイル名自体を?
このチュートリアルに示すように、save() の前に FileReference.browse() への呼び出しを挿入しようとしましたが、一度に 1 つの FileReference 呼び出ししか実行できないため、エラーがスローされます。