从 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、file、smb、smtp、smtps、ldap 和 ldaps 协议;其他协议不受支持并将返回错误。FileMaker Pro 会将 URL 指定的资源下载到一个变量或字段。

在执行此脚本步骤之前,必须先指定目标变量,指定当前布局的目标字段,单击字段,或使用转到字段脚本步骤。如果未指定“目标”,则数据将放入活动字段中。否则,此脚本步骤将返回一个可以使用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=" & 客户::地址 & "&zoom=14&markers=" & 客户::地址 & "&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>