从 URL 插入
将 URL 的内容输入到一个字段或变量中。
另请参阅
选项
-
“选择全部内容”会替换字段或变量的内容。如果未选择此选项:
-
对于字段,将仅替换活动字段的选定部分,或在插入点处插入数据。默认插入点位于字段数据的结尾。
-
对于没有容器数据的变量,将在变量当前值的结尾插入数据。对于具有容器数据的变量,将替换变量内容。
-
-
“包括对话框”指定在执行此脚本步骤时是否显示“从 URL 插入”选项对话框。
-
“目标”指定要将 URL 内容插入到的字段或变量。如果变量不存在,则此脚本步骤将创建一个变量(请参阅使用变量)。
-
“指定 URL”允许您键入 URL 或从算式创建 URL。
-
“自动编码 URL”用 URL 所需的相应编码值替换特殊字符。例如,用
%20
替换空格字符。当取消选中此选项时,URL 将保持和输入时相同。cURL 选项不会进行编码。 -
“验证 SSL 证书”会验证 URL 中指定的服务器的 SSL 证书。如果无法验证证书,用户可以选择仍然连接或取消以跳过此脚本步骤。如果无法验证证书并且设置错误捕获脚本步骤设置为“打开”,“从 URL 插入”的行为将与服务器不可用时相同。
-
“指定 cURL 选项”允许您将一个或多个支持的 cURL 选项输入为算式形式。请参阅支持的 cURL 选项。
兼容性
产品 | 是否支持 |
FileMaker Pro | 是 |
FileMaker Go | 是 |
FileMaker WebDirect | 是 |
FileMaker Server | 是 |
FileMaker Cloud | 是 |
FileMaker Data API | 是 |
自定义 Web 发布 | 是 |
原始版本
12.0
说明
此脚本步骤将 URL 指定的资源下载到变量或字段。支持以下协议:
-
http, https
-
ftp, ftps, sftp
-
file
-
smb
-
smtp, smtps
-
ldap, ldaps
有关例外情况,请参阅注释。其他协议不受支持,并返回错误。
在执行此脚本步骤之前,必须先指定目标变量,指定当前布局的目标字段,单击字段,或使用转到字段脚本步骤。如果未指定“目标”,则数据将放入活动字段中。否则,此脚本步骤将返回一个可以使用 Get (上一个错误)函数捕获的错误代码。
有关容器字段中支持的图片和音频/视频格式的列表,请参阅使用容器字段中的数据。
重要事项 为了在 FileMaker WebDirect 中实现更好的性能,当目标为字段时请确保选中“选择全部内容”。
注释
-
作为一个基于云的集成平台,Claris Connect 以一种更简便的方式将 FileMaker 定制化 App 连接到 Web 的 App 和服务上。请参阅 Claris Connect。
-
“从 URL 插入”仅支持对“指定 URL”使用 UTF-8。但对于“指定 cURL 选项”,您可以控制 cURL 选项中参数的字符编码。请参阅支持的 cURL 选项。
-
“目标”为变量时,数据通常存储为文本。要存储为容器数据,请指定支持的 cURL 选项中所述的 cURL 选项。
-
要控制此脚本步骤等待服务器做出响应的时间,请为
--max-time
cURL 选项指定一个值。 -
在 FileMaker WebDirect 中:
-
如果“包括对话框”为“打开”,此脚本步骤将像选择了“自动编码 URL”时一样执行。
-
如果取消选择“选择全部内容”,并且“从 URL 插入”将内容插入文本字段,则 URL 的内容会附加到文本字段之后。多次提取可能导致难以预料的后果并且降低性能。
-
-
file 协议:
-
在 FileMaker WebDirect、FileMaker Data API 和“自定义网络发布”中不受支持
-
在服务器端脚本中只能用于引用 Documents 文件夹或临时文件夹中的文件(请参阅服务器端脚本中的路径)
-
-
Get 函数返回的路径(如Get (文档路径) 和Get (临时路径))是 FileMaker 格式,必须转换为标准 URL 格式,然后才能将它们与“指定 URL”中的文件协议一起使用。(请参阅 ConvertFromFileMakerPath 函数。)访问本地文件的一种更简单的方式是使用读取数据文件脚本步骤,它使用这些路径无需转换。
-
FileMaker Go 不支持 ldap 和 ldaps 协议。
-
如果服务器响应中没有内容,则执行此脚本步骤后,Get(上一个错误)可能会返回 10(“请求的数据丢失”)。如果期望的响应未接收到任何内容,则此返回值可能并不意味着发生错误。
示例 1
访问一个网站,并将一个 PDF 插入到“销售报告”容器字段中。
从 URL 插入[ 包括对话框: 关闭 ; 目标: 客户::销售报告;"https://example.com/sales_report.pdf" ]
示例 2
在“地址地图”容器字段中插入显示客户地址的地图。
从 URL 插入[ 包括对话框: 关闭 ; 目标: 客户::地址地图 ; "http://maps.google.com/maps/api/staticmap?center=" & Customers::Address & "&zoom=14&markers=" & Customers::Address & "&size=256x256&sensor=false&key=API_KEY" ]
示例 3
插入 https://www.apple.com 的 HTML 代码。
从 URL 插入[ 包括对话框: 关闭 ; 目标: 客户::HTML网站代码;"https://www.apple.com" ]
示例 4
使用 cURL 选项 --user
和 --upload-file
以凭据我的用户名
和我的密码
将文件从容器字段上传到服务器,并将来自服务器的所有结果存储在变量 $$结果
中。对于 HTTP 或 HTTPS,服务器上的文件名将与容器字段中的文件名相同。
设置变量 [ $文件 ; 值: 表::容器 ]
从 URL 插入 [ 包括对话框: 关闭 ; 目标: $$结果 ;
"https://example.com/uploads" ; 验证 SSL 证书 ;
cURL 选项: "--user 我的用户名:我的密码 --upload-file $文件
--header \"Content-type: image/png\""]
示例 5
通过具有安全连接的 SMTP 服务器发送电子邮件。对于发件人地址,使用 cURL 选项 --mail-from
;对于收件人地址,使用 --mail-rcpt
;对于包含消息的文件,使用 --upload-file
;对于登录 SMTP 服务器的凭据,使用 --user
。
设置变量 [ $邮件 ; 值:TextEncode ( 表::邮件 ; "utf-8" ; 3 ) ]
从 URL 插入 [ 选择 ; 包括对话框: 关闭 ; 目标: $结果 ;
“smtps://smtp.example.com:465” ; 验证 SSL 证书 ; cURL 选项:
“--mail-from sender@example.com
--mail-rcpt recipient@example.com
--upload-file $mail
--user account:密码" ]
表::邮件文本字段包含以下消息内容,包括 HTML 格式的电子邮件正文:
发件人: 发件人姓名<sender@example.com>
收件人: 收件人姓名<recipient@example.com>
主题: 主题行
Content-Type: text/html; charset="utf8"
<html><body>电子邮件正文</body></html>