从 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 选项。

    • 如果服务器返回的响应媒体类型为”application/json“,此脚本步骤将尝试解析该 JSON 文本,并在内存中缓存其二进制表示形式,以加快后续 JSON 处理速度,其效果等同于直接使用 JSONParse函数。您可以使用 JSONParsedState函数查看响应是否被成功解析。

  • 要控制此脚本步骤等待服务器做出响应的时间,请为 --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>