如何在没有浏览器的情况下运行SWF(在linux服务器上)?

如何在没有浏览器的情况下运行SWF(在linux服务器上)?,linux,flash,Linux,Flash,我有一个swf文件,它连接到远程闪存服务器并接收一些数据。出于安全原因,我无法使此swf文件在web上可访问,因此无法使用浏览器运行它。有没有办法在服务器端通过命令提示符运行它(在linux下)?您可以使用.htaccess文件访问SWF web并保护目录 有关更多信息,请参阅 您还可以尝试使用ffplay(ffplay-fssomefile.swf)来运行swf 已编辑:ffplay似乎使用SDL,因此可能不需要X 但我认为这不会安装在你的服务器上。YMMV 更新:如果您使用SSH,请参阅本文

我有一个swf文件,它连接到远程闪存服务器并接收一些数据。出于安全原因,我无法使此swf文件在web上可访问,因此无法使用浏览器运行它。有没有办法在服务器端通过命令提示符运行它(在linux下)?

您可以使用.htaccess文件访问SWF web并保护目录

有关更多信息,请参阅

您还可以尝试使用ffplay(ffplay-fssomefile.swf)来运行swf

已编辑:ffplay似乎使用SDL,因此可能不需要X

但我认为这不会安装在你的服务器上。YMMV

更新:如果您使用SSH,请参阅本文,了解如何将X显示导出到本地工作站,不要让no-GUI阻止您的工作

AdobeAIR

主要问题是命令提示符,而不是“web可访问性”。如果您可以运行FireFox,我相信您可以通过文件系统路径加载该文件。如果有可能在命令行上运行SWF,我会非常惊讶。我的意思是,并不是说这在原则上是不可能的,只是SWF的重点通常是显示一些闪烁和跳跃的垃圾,所以没有人会费心编写命令行工具来运行它

顺便说一句,我想你知道你可以在Linux服务器上运行FireFox,对吧?(整个X Windows的东西?

你可以很容易地(ish)编写一个C程序,实现netscape插件接口,直接与Flash接口。那就行了

然而,它可能仍然需要一个X服务器来完成这项工作——您可以使用XVnc或其他东西来运行headless

不平凡,但会奏效


您的要求听起来有点奇怪-也许用其他语言重写Flash组件是一种更易于维护的设计。

Adobe的Ichabod可能会解决您的问题,但我似乎找不到任何信息,无论它是供公众使用,还是只供搜索提供商使用。你可以使用
Xvfb
Xfake
来运行一个与真实硬件没有接口的X服务器。如果它们不能作为包用于您的发行版,您可以从Xorg xserver源代码构建它们

(或使用MarkR的
Xvnc
建议。)

Adobe插件通常附带一个名为
flashplayer
gflashplayer
的独立可执行文件,可在浏览器之外使用。我认为它仍然存在,但是在开发者包中,或者类似的东西中

如果您使用的是免费的Flash实现,那么Gnash和Swfdec分别提供了独立的
Gnash
Swfdec
可执行文件

这将在显示屏上启动
Xvfb
:20(只需确保选择一个未使用的数字;正常显示屏从
:0开始,
ssh
的X转发通常分配
:10
以上,我看到一些
Xvnc
设置从
:90开始),并在其内部运行
gnash

startx /usr/bin/gnash http://url.to/flash.swf -- /usr/bin/Xvfb :20

如果您使用ubuntu,请键入
sudo-apt-get-install-xvfb
,然后从adobe下载flashplayer,然后像这样尝试,它工作得很好:

xvfb-run ./flashplayer test.swf

或者,如果您使用windows,您只需双击服务器上的swf,它现在正在运行,与其他服务器通信,只需将此swf用作服务器的一部分,计算值并返回,swf永远运行循环,因为它是一个服务器

最好的方法是通过Wine安装“Macromedia Flash Player MX”。。它将安装Macromedia MX以及“Macromedia Flash Player”。。现在只需转到您的swf文件并将其默认应用程序更改为“Macromedia Flash Player”(而不是Macromedia MX)

我真的很想知道是否有人知道这样做的方法!我需要经常从服务器连接到它,浏览器永远不会是一个选项-服务器没有GUI,应该从cron运行。我将尝试ffplay,谢谢。我想使其不可访问以阻止下载该swf,因此保护http文件夹不是一个选项(用户需要访问该文件夹,因为他们需要该文件夹中的数据)。它是一个linux web服务器。没有GUI。