如何通过PHP访问存储在FileMaker Pro数据库中的嵌入式容器字段中的图像并回显到本机iOS应用程序?获得网址有几个参考,但没有具体关于将图像作为编码字符串回显。
以下是更详细的步骤:
由于我只使用类似方法在FileMaker Server和本机iOS应用程序之间来回移动文本,我正在寻求针对图像执行相同操作的指导,特别是对于步骤#4。
答案 0 :(得分:0)
虽然评论中提到的article是一个好的开始,但一般的解决方案是使用FileMaker PHP API教程中的容器桥文件。我相信教程文件(包含每课的文件夹的HTML文件)随FileMaker Server一起安装。
无论如何,本教程的第2课介绍了ContainerBridge.php文件,该文件具有以下内容(在一个显然必须在某处更新的版本中):
<?php
/**
* FileMaker PHP Example
*
*
* Copyright 2006, FileMaker, Inc. All rights reserved.
* NOTE: Use of this source code is subject to the terms of the FileMaker
* Software License which accompanies the code. Your use of this source code
* signifies your agreement to such license terms and conditions. Except as
* expressly granted in the Software License, no other copyright, patent, or
* other intellectual property license or right is granted, either expressly or
* by implication, by FileMaker.
*
*/
//This is a bridge script that calls FileMaker::getContainerData with the provided url.
require_once("dbaccess.php");
if (isset($_GET['path'])){
$url = $_GET['path'];
$url = substr($url, 0, strpos($url, "?"));
$url = substr($url, strrpos($url, ".") + 1);
if($url == "jpg"){
header('Content-type: image/jpeg');
}
else if($url == "gif"){
header('Content-type: image/gif');
}
else{
header('Content-type: application/octet-stream');
}
echo $fm->getContainerData($_GET['path']);
}
?>
我们的想法是dbaccess.php
文件创建FileMaker对象并设置URL,用户名和密码,以便正确启动$fm
对象。当您需要访问容器数据时,请包含此ContainerBridge.php文件并将其用作URL。
echo '<img src="ContainerBridge.php?path=' . urlencode($record->getField('Image')) . '">';
答案 1 :(得分:0)
我不确定您使用的是哪个版本的FileMaker,或者您是否有权访问表结构,但如果您确实有访问权限且使用的是最新版本(撰写本文时为第13版),则可以创建一个计算字段,base64编码(Base64Encode函数)容器字段。我相信你可以在Swift中解码base64。
因此,不是将容器字段放在PHP正在访问的布局上,而是将此计算字段放在布局上。然后你需要在PHP中做的就是回显base64字符串,所以这应该照顾你的步骤3,4和&amp; 5在一起。
希望有所帮助!