使用flexpaper检索从数据库中显示swf文件。

时间:2014-04-16 08:30:38

标签: php flash flexpaper

swf文件存储在数据库中,需要使用flexpaper显示。

这是flexpaper显示文件的代码。

$('#documentViewer').FlexPaperViewer(
    { config : {

    SWFFile : '<?php echo "present_retrieve.php?id=".$id.""; ?>',

    Scale : 0.6,
    ZoomTransition : 'easeOut',
    ZoomTime : 0.5,
    ZoomInterval : 0.2,
    FitPageOnLoad : true,
    FitWidthOnLoad : false,
    FullScreenAsMaxWindow : false,
    ProgressiveLoading : false,
    MinZoomSize : 0.2,
    MaxZoomSize : 5,
    SearchMatchAll : false,
    InitViewMode : 'Portrait',
    RenderingOrder : 'flash',
    StartAtPage : '',

    ViewModeToolsVisible : true,
    ZoomToolsVisible : true,
    NavToolsVisible : true,
    CursorToolsVisible : true,
    SearchToolsVisible : true,
    WMode : 'window',
    localeChain: 'en_US' }}

present_retrieve.php

<?php

// Connect to the database
        $host="localhost"; // Host name 
        $username="root"; // Mysql username 
        $password=""; // Mysql password 
        $db_name="is"; // Database name 
        $tbl_name="presentation"; // Table name 

        $conn = mysql_connect("$host", "$username", "$password"); 
        if(! $conn )
        {
          die('Could not connect: ' . mysql_error());
        }

        mysql_select_db($db_name);

    if (isset($_GET["id"]) && !empty($_GET["id"])) { 

            $id= $_GET['id'];

            $query = "SELECT file_name, file_type, file_size, content FROM $tbl_name WHERE file_id = '$id'";

            $result = mysql_query($query) or die(mysql_error()); 

                    $row1 = mysql_fetch_array($result);
                    $name=$row1['file_name'];
                    $type=$row1['file_type'];
                    $size = $row1['file_size'];
                    $content = $row1['content'];

            header("Content-length: $size");
            header("Content-type: $type");
            header("Content-Disposition: attachment; filename=$name");
            echo $content;

            mysql_close($conn);
            exit;
            }


?>

但是,该文件未在flexpaper中显示

请帮我弄明白。谢谢。

1 个答案:

答案 0 :(得分:0)

可能是您的输出中有一个额外的空间,这会破坏swf文件。检查php脚本中的任何前导或尾随空格(在php脚本标记之外)。

您也不需要在回复中使用内容处置标头。我建议使用swf文件的以下标题:

标题(&#39;内容类型:application / x-shockwave-flash&#39;); 标题(&#39; Accept-Ranges:bytes&#39;); 标题(&#39;内容长度:&#39;。$ size);