apache-flex - 使用 FileReference 下载时丢失扩展名

标签 apache-flex actionscript-3 download

我需要用户从我的应用程序下载 JPEG 文件,但是,当用户更改文件名时,保存的文件将被下载而没有扩展名。

例如:我正在使用 FileReference.download() 并将默认文件名设置为“demoPic.jpg”,并且未显示用户的 Windows 系统设置控制文件扩展名。因此,当对话框打开下载窗口时,只有“demoPic”显示为文件名。如果用户保存文件而不更改文件名,则保存的文件就可以了。但如果用户更改文件名,则下载文件将被保存为不带扩展名。当用户通过 flex 代码忘记文件扩展名时,是否可以将文件扩展名添加到文件名?

最佳答案

这是 Flash Player 的一个已知问题。向 Adob​​e 提交了增强请求。请访问和投票 为它:https://bugs.adobe.com/jira/browse/FP-2014

培训用户不要重命名文件似乎不切实际。这是我用于我的应用程序的解决方法:

  • 该问题仅发生在带有 ActiveX 插件的 Windows 上。使用 Capabilities.playerType 检测 ActiveX(根据我的经验,只有约 25% 的用户)
  • 如果是 ActiveX 插件,则回退到“navigateToURL()”以退回服务器上的文件。使用此函数不如 FileReference.download() 可取,因为它的可控性较差(由浏览器负责,而不是您的应用程序),但它会产生一个保存对话框,用户可以在其中安全地重命名文件。
  • 关于apache-flex - 使用 FileReference 下载时丢失扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3243564/

    相关文章:

    css - 为大量图像设置 Flex/AIR 元素结构?

    Flash as3检查事件监听器

    javascript - Javascript概念

    c# - 从服务器下载文件,然后在服务器上删除

    下载特定的 Android 源代码

    javascript - 在 HTML5 中缓存 MP3 以便离线收听?

    apache-flex - 错误: Id attribute is not allowed on the root tag of a component

    apache-flex - Flex 组件就像一个多选 Accordion ?

    apache-flex - 柔性 : Cancel HTTPService. 发送()?

    arrays - AS3 使默认数组工作 : function example(human:Array = ["heart" ,"skull"])?