0

我有一个用 ActionScript 3 编写的文件上传组件。该组件使用FileReferenceList.browse()让用户选择要上传的文件。此方法接受一个 FileFilter 对象数组来缩小可选择的文件类型。

直到此时,我只传递了数组中的一个 FileFilter 元素——如果我传递了任何元素。这多年来运行良好,没有任何问题。但是最近我遇到了一种情况,我以为我理解了为什么这个方法需要一个 FileFilters 数组。大概是我错了……

我有一项服务,它设计(并使用)主要呈现视觉材料(图像),但它也可以处理非视觉文件,如 .xls、.doc、.zip 等。这意味着实际上我的管理员将上传几乎只有图像 (99%) 到此服务但有时他会上传 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 上。当文件浏览器窗口出现时,我的用户只能看到图像文件。但是(s)他也可以切换到“所有文件”视图并上传其他文件。

但现在事实证明,我的 Mac 用户被这种方式搞砸了……文件浏览器窗口不提供切换到“所有文件”视图的可能性,因此他们无法上传非图像文件 :-) 啊!

我想知道我上面试图描述的问题的最佳解决方案是什么?一个简单的解决方案可能是对于 Mac 用户我完全跳过 FileFilter 的东西。但这不是我想要的方式......或者我错过了什么?是否有可能以某种方式“说服”Mac 文件浏览器窗口提供让我的管理员在 Win 文件选择器等过滤器之间进行选择的可能性?

4

0 回答 0