【问题标题】:Get Attachment from POST using Agent and LotusScript使用代理和 LotusScript 从 POST 获取附件
【发布时间】:2021-01-19 14:57:42
【问题描述】:

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

提交表单后,它由代理 (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 编写的代理中的“文件”控制器获取附件? 有人可以指出我正确的方向吗?或者给个小费我应该怎么做?

非常感谢。

【问题讨论】:

    标签: lotus-notes lotus-domino lotusscript


    【解决方案1】:

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

    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

    【讨论】:

      【解决方案2】:

      要接受文件作为表单提交的一部分,您必须设置表单的“enctype”属性来处理文件:

      <form method="post" enctype="multipart/form-data" action="/x.nsf/x?CreateDocument" name="_fmForm">
      

      使用 Domino 中的“文件上传控制”(FUC) 附加的文件将附加到文档中,并且可以通过附件类型的嵌入对象作为 web-query-save 事件的一部分进行访问。

      (注意:通过将文件上传到 Domino 来生成您自己的表单很棘手)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-24
        • 1970-01-01
        • 1970-01-01
        • 2011-11-11
        • 1970-01-01
        • 1970-01-01
        • 2014-08-29
        相关资源
        最近更新 更多