使用 Agent 和 LotusScript 从 POST 获取附件

问题描述

我有一个网络表单(见下面的虚拟示例),它是由代理打印的。

提交表单后,由代理 (LS) 处理。

我不知道如何检索文件/附件,这是我的问题。

<form name="profile" method="POST" action=".../postAgentName?openagent">
<input name="title"/>
<input name="price"/>
...
<input type="file" name="files" multiple>
</form>

就我所见,附件不是 DocumentContext 的一部分,而只是文件名。我有点怀疑文件可能会在某个地方的请求内临时上传到 Domino,但我真的不确定?

是否可以使用 LotusScript 从用 LS 编写的代理中的“文件”控制器获取附件? 有人可以指出我正确的方向吗?或者给个提示我该怎么办?

非常感谢。

解决方法

我已经构建了自己的解决方案

  1. 当我们在客户端选择文件时 - 我们使用 javascript 将它们转换为 base64
<form name="formName" method="post" action="agentName?openagent">
<input name="title" value="xxx">
<input type="file" name="files" multiple onchange="toBase64()">
</form>
  1. 我们像往常一样添加 base64 字符串以形成表单,以便将它们提交给端点(代理)

var reader = new FileReader();

  1. 代理将获取 base64 值并将其转换回文件(使用 LS 或 Java/LS2J)

调用 stream.WriteText(base64File)

调用 item.SetContentFromText(stream,contentType,ENC_BASE64)

在此处查看详细信息(此处无法正确格式化): https://dpastov.blogspot.com/2021/01/how-to-post-attachments-using-form-to.html