2010-10-24 88 views
1

我正在使用zend框架。从我的phtml文件中,我试图调用一个链接到我的web目录之外的swf文件。 此链接的代码是:如何使用php调用swf文件?

<?php echo getcwd(); ?> 
<object width="550" height="400"> 
<param name="movie" value="somefilename.swf"> 
<embed src="/message/get-file/messageId/<?php echo $this->message->id; ?>" width="550" height="400"> 
</embed> 
</object> 

readfile($fileName);代码打开一个保存成功保存文件,比1KB较大的文件箱。 我觉得我失去了一些基本的东西?

只是为了确认,我可以用图像但不闪光?这是正确的吗?

`header("Content-Type: image/jpg"); 
header("Content-Disposition: attachment; filename=$fileName"); 
readfile($fileName);` 

然后我用:
<img src='/message/get-file/messageId/<?php echo $this->message->id; ?>'

这工作得很好

我跳像做
header("Content-Type: application/x-shockwave-flash",true);
header("Content-Disposition: attachment; filename=$fileName"); readfile($fileName);

然后
<embed src="/message/get-file/messageId/<?php echo $this->message->id; ?>"

+1

什么'readfile'码是你在说什么?看起来你已经发布了一个不完整的例子。 – meagar 2010-10-24 15:31:49

回答

1

非常感谢Meagar回答。
你是对的,我没有给出一个完整的例子,我很抱歉。
我找到了答案,这是我发送错误的标题。
我将派遣是:

header("Content-Disposition: attachment; filename=$message->file_name");

它应该是:

header("Content-Disposition: inline; filename=$message->file_name");

完整的是:

header("Content-Type: application/x-shockwave-flash",true);
header("Content-Length: {strlen($fileName)}",true);
header("Accept-Ranges: bytes",true);
header("Connection: keep-alive",true);
header("Content-Disposition: inline; filename=$message->file_name");
readfile($fileName);

1

无论PHP脚本是否有权访问文件服务器端,您都无法链接到可公开访问的文档根目录之外的文件。