如何在表单流中接收上载的文件

时间:2017-04-14 07:29:54

标签: c# bots botframework

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

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

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

由于

1 个答案:

答案 0 :(得分:0)

无法在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,则启动一个特殊对话框,询问图像/文件。这样,您就可以轻松地从邮件中提取附件。