jQuery加载显示flash内容的PHP

时间:2014-05-06 14:11:13

标签: javascript php jquery flash

我的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文件)放在数据库中......

请提前帮助我指导方向!

2 个答案:

答案 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');