Filemaker PHP getContainerURL
Filemaker PHP getContainerURL
我正在尝试让我的项目-detail.php 文件显示 Filemaker 中容器字段的内容。内容始终为 pdf。这是我所拥有的,除了容器字段 (MasterReport) 之外,一切正常:我基本上什么都没得到,只是在 echo '<b>Verifier:</b> ' . $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> ' . $projectId . '<br>';
echo '<b>Project Name:</b> ' . $projectName . '<br>';
echo '<b>Project Date:</b> ' . $projectDate . '<br>';
echo '<b>Verifier:</b> ' . $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> ' . $projectId . '<br>';
echo '<b>Project Name:</b> ' . $projectName . '<br>';
echo '<b>Project Date:</b> ' . $projectDate . '<br>';
echo '<b>Verifier:</b> ' . $projectStaff . '<br>';
echo '<b>Report Link:</b> ' . "<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']);
?>
我正在尝试让我的项目-detail.php 文件显示 Filemaker 中容器字段的内容。内容始终为 pdf。这是我所拥有的,除了容器字段 (MasterReport) 之外,一切正常:我基本上什么都没得到,只是在 echo '<b>Verifier:</b> ' . $projectStaff . '<br>';
注意:我知道我应该将 $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> ' . $projectId . '<br>';
echo '<b>Project Name:</b> ' . $projectName . '<br>';
echo '<b>Project Date:</b> ' . $projectDate . '<br>';
echo '<b>Verifier:</b> ' . $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> ' . $projectId . '<br>';
echo '<b>Project Name:</b> ' . $projectName . '<br>';
echo '<b>Project Date:</b> ' . $projectDate . '<br>';
echo '<b>Verifier:</b> ' . $projectStaff . '<br>';
echo '<b>Report Link:</b> ' . "<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']);
?>