我的php方面做的是加载数据使用' id'从数据库中,然后显示swf文件的原始数据。 像这样的PHP代码:
<?php
if(isset($_GET['id']))
{
include ('database.php');
$record = mysql_query("SELECT `Flash`, `FlashBlob` FROM `information` WHERE `id` = '". $_GET['id'] ."'; ", $link);
$swf = mysql_fetch_array($record);
mysql_close($link);
header("Content-type: " . $swf['Flash']);
echo $swf['FlashBlob'];
exit;
}
因此,如果我只是在Web链接中加载php,它就会顺利(整个php页面将显示我存储在数据库中的flash)。 在我的主页面中,我想将页面加载到我的div中($(&#34; #gameArea&#34;)),我试过了:
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", 'api/swfInfo.php?id=' + id,true);
xmlhttp.send();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById('gameArea').innerHTML=xmlhttp.responseText;
}
}
但结果是它只加载原始数据(二进制数据)而不加载flash(要显示的swf文件),我该怎么办?
我甚至不确定是否应该为我的闪存找到一个flash插件 因为我出于某种原因把我的flash(swf文件)放在数据库中......
请提前帮助我指导方向!
答案 0 :(得分:0)
尝试以下方法:
header('Content-Type: application/x-shockwave-flash');
header("Content-Disposition:attachment; filename="test.swf");
我的问题是:
什么是$ swf [&#39; Flash&#39;]?也许有错误? 你是否因为调试原因尝试使用file_read_content()编写脚本?
答案 1 :(得分:0)
你的问题过于复杂。如果实际上您的swfInfo.php
正在输出内容类型为application/x-shockwave-flash
的swf文件的字节,那么您需要将data
标记的<object>
属性设置为URL。
<object type="application/x-shockwave-flash" data="api/swfInfo.php?id=7">
<param /> <!-- parameters -->
</object>
我还建议使用content-length
声明,以确保在以这种方式加载文件时正确关闭连接。
header('Content-length: ' . mb_strlen($swf['FlashBlob']));
header('Connection: close');