我使用php api添加/编辑/查看FileMaker数据库。我在Windows环境中使用Filemaker pro 14和FMS 14。
我在添加/编辑容器字段时遇到问题。尝试了以下链接中给出的解决方案:https://community.filemaker.com/thread/66165 这是成功的。 FM脚本是:
Goto Layout[ The layout that shows your container field ]
New Record/Request
Set Variable[$url ; Value:Get(ScriptParameter)]
Insert from URL [Select, No Dialog ; database_name::ContainerField ; $url]
Exit Script
我不想添加新记录。我在布局中有几个容器字段,因此它不是为每个字段添加记录的解决方案,我需要能够修改旧记录的容器字段。
我尝试按如下方式修改脚本:
Go to Layout ["products" (products)]
Go to Record/Request/Page [Last]
Open Record/Request
Set Variable [$url; Value: Get(ScriptParameter)]
Insert from URL [Select, No Dialog; products::brochure; $url]
Exit Script []
注意:(最后)参数只是实验性的。 php脚本如下:
$runscript = $fm->newPerformScriptCommand('products', 'addContainerData', 'http://link_to_uploded_file');
$result = $runscript->execute();
$ result返回成功,但文件未插入容器字段中。
有人指我使用“从URL插入”我必须指定一个记录ID。所以我做了以下事情: 将php脚本修改为:
$editCommand = $fm->newEditCommand('products', $recordID, $editedData);
$editCommand->setPreCommandScript('addContainerData', 'http://url_to_my_uploaded_file');
$result = $editCommand->execute();
和FM脚本(addContainerData)到
Set Variable [$url; Value: Get(ScriptParameter)]
Insert from URL [Select, No Dialog; products::brochure; $url]
Exit Script []
结果是成功但是没有将文件插入容器字段。
我错过了什么?怎么做才能将容器数据添加到新/旧记录?
答案 0 :(得分:1)
可能的解决方法是使用PHP函数将文件编码为base 64,并将该值设置为FileMaker中的文本字段。在那里,您可以使用自动输入或脚本来获取基数64值并将其解码为容器字段。这适用于文件较小的文件。