【问题标题】:How to receive an uploaded file inside a form flow如何在表单流中接收上传的文件
【发布时间】:2017-04-14 19:26:25
【问题描述】:

我想知道如何在 Microsoft Bot Framework FormFlow 中接收上传的文件。

我希望我的用户可以在提出一些问题后上传文件(即他们的文档 ID 的照片),以便保存在我们的 CRM 中。

我很清楚可以在public async Task<HttpResponseMessage> Post([FromBody]Activity activity) 内部管理常规对话时发送附件,但在其他一些问题中间的 FormFlow 对话框中不清楚如何管理流程。

谢谢

【问题讨论】:

标签: c# bots botframework


【解决方案1】:

无法在 FormFlow 中处理活动附件。 原因是FormBuilder使用的FormDialog只是将Activity的Text传递给Fields。

public async Task MessageReceived(IDialogContext context, 
        IAwaitable<Connector.IMessageActivity> toBot)
        {
            try
            {
                var toBotText = (toBot != null ? (await toBot).Text : null);
                var stepInput = toBotText == null ? "" : toBotText.Trim();
                //rest of the method.

来源:https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Library/Microsoft.Bot.Builder/FormFlow/FormDialog.cs

只有一种方法可以在表单中执行此操作,那就是让您的用户向您发送图像/文件的 URL。

另一种选择是询问用户是否想上传一些内容作为表单中的最后一个问题(布尔属性),然后在 ResumeAfterForm 方法中进行检查。如果该值为 true,您将启动一个特殊的对话框,询问图像/文件。这样您就可以轻松地从邮件中提取附件。

【讨论】:

    猜你喜欢
    • 2011-01-12
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    相关资源
    最近更新 更多