0

ActionScript 3 で記述されたファイル アップロード コンポーネントがあります。このコンポーネントはFileReferenceList.browse()を使用して、ユーザーがアップロードするファイルを選択できるようにします。このメソッドは、FileFilter オブジェクトの配列を受け入れて、選択可能なファイルの種類を絞り込みます。

今回まで、配列に FileFilter 要素を 1 つだけ渡しました。これは問題なく何年もうまく機能しました。しかし最近、このメソッドがFileFilterの配列を受け取る理由が理解できたと思ったときに、ある状況に遭遇しました。おそらく私が間違っていた...

主に視覚的な素材 (画像) を表示するように設計 (および使用) したサービスがありますが、.xls、.doc、.zip などの非視覚的なファイルも処理できます。これは、実際には管理者がアップロードすることを意味します。このサービスにはほとんど画像 (99%) のみですが、時々 (s) 彼は 1-2 の .xls、.doc、.zip などをアップロードします。

そのため、この時点から (画像) 以外のファイルを実際にブロックしたくありませんでした。フィルター。ここで優先ファイルが画像であることを管理者ユーザーに「表示」しようとしましたが、結局のところ、彼は任意のファイルタイプをアップロードできる必要があります。

だから、私はこれをしました:

var fileReferenceList : FileReferenceList = new FileReferenceList();
var imgFilefilter : FileFilter = new FileFilter("Images", "*.jpg;*.jpeg;*.gif;*.png");
var allFilesFilter : FileFilter = new FileFilter("All files", "*");
fileReferenceList.browse([imgFileFilter, allFilesFilter]);

これはうまくいきました - Windows上で。ファイル ブラウザ ウィンドウが表示されると、ユーザーには画像ファイルのみが表示されます。ただし、「すべてのファイル」ビューに切り替えて、他のファイルもアップロードできます。

しかし、私の Mac ユーザーはこの方法で失敗していることが判明しました... ファイル ブラウザ ウィンドウでは、「すべてのファイル」ビューに切り替えることができないため、画像以外のファイルをアップロードすることはできません :-) えっと!

上記で説明しようとした問題の最善の解決策は何でしょうか? 些細な解決策は、Mac ユーザーの場合、FileFilter を完全にスキップすることです。しかし、それは私が好む方法ではありません... または、何かを見逃しましたか? Winファイルセレクターのように、管理者がフィルターから選択できるようにする可能性を提供するために、Macファイルブラウザーウィンドウを何らかの形で「説得」することは可能ですか?

4

0 に答える 0