Firefox 尝试下载本地 .swf 文件

Lev*_*ans 8 linux firefox flash-player

我对我的 Firefox 和 Flash 文件很恼火:

当我尝试.swf用它打开文件时:

  • 如果文件在网络上(通过http://...),它在浏览器中正常播放
  • 如果文件是本地文件(通过file:///...),firefox 只显示一个对话框来下载它

它尝试打开一个 web swf 文件,下载它然后在本地打开它,它是一样的。所以我想这是一个firefox问题。

我在使用 Gentoo Linux,它从今天开始,没有任何明显的原因。

小智 10

在自己深入研究之后,我发现这是一个 MIME 类型的问题。如果 Linux 上的 Firefox(或 Chrome)认为类型为 application/vnd.adobe.flash.movi​​e,则不会播放 SWF 文件。

根据https://askubuntu.com/questions/478169/why-cant-firefox-run-local-swf-files

以 root 身份编辑 /usr/share/mime/packages/freedesktop.org.xml 并替换以下内容:

<mime-type type="application/vnd.adobe.flash.movie">
Run Code Online (Sandbox Code Playgroud)

和:

<mime-type type="application/x-shockwave-flash">
Run Code Online (Sandbox Code Playgroud)

然后运行:

update-mime-database /usr/share/mime
Run Code Online (Sandbox Code Playgroud)

我发现我需要在之后重新启动 Firefox。这是一个非常接近http://ubuntuforums.org/showthread.php?t=2218732&page=2的脚本,它执行这些步骤(使用 sudo 运行它),但我会警告你——我注意到不同的安装似乎有不同的间距,这可能会绊倒 sed 脚本,这就是发生在我身上的事情。

#!/bin/bash
clear
echo "Update file freedesktop.org.xml...";
sed  -e "s/<mime-type type=\"application\/vnd.adobe.flash.movie\">/<mime-type type=\"application\/x-shockwave-flash\">/g"  /usr/share/mime/packages/freedesktop.org.xml >  /usr/share/mime/packages/freedesktop.org.xml.new
mv /usr/share/mime/packages/freedesktop.org.xml /usr/share/mime/packages/freedesktop.org.xml.original
mv /usr/share/mime/packages/freedesktop.org.xml.new /usr/share/mime/packages/freedesktop.org.xml
echo "File updated successfully!";
echo "Update mime database...";
update-mime-database /usr/share/mime
echo "Mime database updated successfully! ALL DONE!";
Run Code Online (Sandbox Code Playgroud)