我正在使用zend框架。从我的phtml文件中,我试图调用一个链接到我的web目录之外的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; ?>"
答案 0 :(得分:1)
无论PHP脚本是否可以访问文件服务器端,您都无法链接到可公开访问的文档根目录之外的文件。
答案 1 :(得分: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);