Filemaker PHP getContainerURL

Filemaker PHP getContainerURL

我正在尝试让我的项目-detail.php 文件显示 Filemaker 中容器字段的内容。内容始终为 pdf。这是我所拥有的,除了容器字段 (MasterReport) 之外,一切正常:我基本上什么都没得到,只是在 echo '<b>Verifier:</b> &nbsp;' . $projectStaff . '<br>';

之后空白 space

注意:我知道我应该将 $r 更新为 $result 并将我的查询命令从 $q 更改,这是在早期开发中,我将在我的脚下进行这些更改。

<?php

session_start();

require_once('./includes/php/include_master.php');

if ($_SESSION['authenticated'] == "true") {

$id_account = $_SESSION['ID_Account'];
$projectId = $_GET['id'];

$q = $protoFM['EMGSV'] -> newFindCommand('web_projects');
$q -> addFindCriterion('id_account', '=='.$id_account);
$q -> addFindCriterion('ID_Project', $projectId);
$r = $q->execute();

if(FileMaker::isError($r)){

    if($r->code == 401){
        echo "No projects found.";
    }else{
        echo "Unknown Error:".$r->code;
    }

}else{
    foreach ($r->getRecords() as $project){
$projectName = $project->getField('Project_Name');
$projectDate = $project->getField('Date_Start');
$projectStaff = $project->getField('Staff');
$projectReport = $project->getField('MasterReport');
        echo '<b>Affidavit:</b> &nbsp;' . $projectId . '<br>';
        echo '<b>Project Name:</b> &nbsp;' . $projectName . '<br>';
        echo '<b>Project Date:</b> &nbsp;' . $projectDate . '<br>';
        echo '<b>Verifier:</b> &nbsp;' . $projectStaff . '<br>';
        echo $projectReport->getField('MasterReport').'<br>';
        echo '<embed src="' . $fm->getContainerDataURL($projectReport->getField('MasterReport')) .'">';
    }

}

} else {
echo "You are not logged in.";
}

?>

Filemaker 容器字段有点不同...也许跳出框框思考您是否尝试过相反的做法,让 filemaker 执行 php?这可以使用 filemaker '[SmartPill PHP][1]' 插件来完成,允许您从 filemaker 创建 php 控制和输出。我知道他们有一组处理容器字段的命令。

我最终通过以下方法使它起作用:

foreach ($r->getRecords() as $project){
$projectName = $project->getField('Project_Name');
$projectDate = $project->getField('Date_Start');
$projectStaff = $project->getField('Staff');
$projectReport = $project->getField('MasterReport');
        echo '<b>Affidavit:</b> &nbsp;' . $projectId . '<br>';
        echo '<b>Project Name:</b> &nbsp;' . $projectName . '<br>';
        echo '<b>Project Date:</b> &nbsp;' . $projectDate . '<br>';
        echo '<b>Verifier:</b> &nbsp;' . $projectStaff . '<br>';
        echo '<b>Report Link:</b> &nbsp;' . "<a href='includes/php/containerBridge.php?path=".urlencode($projectReport)."'>Click here to download PDF Report</a><br>";
    }

containerBridge.php 文件是:

<?php
//require_once("FileMaker.php");
include 'include_master.php';
header('Content-Type: application/x-gzip');
header('Content-disposition: filename="DownloadedReport.pdf.gz"');
echo $protoFM['EMGSV']->getContainerData($_GET['path']);
?>