Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Bot框架将文件上载到用户_C#_Botframework - Fatal编程技术网

C# 使用Bot框架将文件上载到用户

C# 使用Bot框架将文件上载到用户,c#,botframework,C#,Botframework,我一直在开发Bot,我已经配置了我的WaterwallDialog,Bot连接到数据库,获取一些信息并创建Excel文件,现在我不知道如何将文件上传到用户。是否无法将文件直接上载到用户 我遵循了上面的帖子,但这为用户提供了一个URL,或者它从文件中删除了扩展名 编辑:我已经按照上面问题中的两个答案进行了操作,第一个答案将文件上载到频道,但文件扩展名和文件名已更改。因此,当用户下载文件时,他们会下载“原始”而不是“file.extension” 根据要求,这里是使用的代码 { var

我一直在开发Bot,我已经配置了我的WaterwallDialog,Bot连接到数据库,获取一些信息并创建Excel文件,现在我不知道如何将文件上传到用户。是否无法将文件直接上载到用户

我遵循了上面的帖子,但这为用户提供了一个URL,或者它从文件中删除了扩展名

编辑:我已经按照上面问题中的两个答案进行了操作,第一个答案将文件上载到频道,但文件扩展名和文件名已更改。因此,当用户下载文件时,他们会下载“原始”而不是“file.extension”

根据要求,这里是使用的代码

{
    var imagePath = System.Web.HttpContext.Current.Server.MapPath(@"~\Resources\Results.xlsx");

    using (var connector = new ConnectorClient(new Uri(serviceUrl)))
    {
        var attachments = new Attachments(connector);
        var response = await attachments.Client.Conversations.UploadAttachmentAsync(
            conversationId,
            new AttachmentData
            {
                Name = "Results.xlsx",
                OriginalBase64 = File.ReadAllBytes(imagePath),
                Type = "text/xlsx"
            });

        var attachmentUri = attachments.GetAttachmentUri(response.Id);

        return new Attachment
        {
            Name = "Results.xlsx",
            ContentType = "text/xlsx",
            ContentUrl = attachmentUri
        };
    }
} 

使用internet附件,在发送给用户之前将文件上载到某个主机(例如:aws s3)

private static Attachment GetInternetAttachment()
{
    // ContentUrl must be HTTPS.
    return new Attachment
    {
        Name = @"Resources\architecture-resize.png",
        ContentType = "image/png",
        ContentUrl = "https://docs.microsoft.com/en-us/bot-framework/media/how-it-works/architecture-resize.png",
    };
}

这回答了你的问题吗?正如我所说的,我之前一直在问这个问题,但是当你点击下载文件时,下载的文件名为“original”,而不是你所期望的“file.extension”。编辑:读了一遍后,我意识到我只是说我遵循了前面问题的URL部分。你能发布你的代码吗?用使用过的代码更新。这是我们最终决定这样做的方式,这是一个解决方案,但如果可以上传到频道,我仍然更愿意这样做。另一个解决方案也使用Sharepoint,但这需要与AzureI进行更多的集成。我建议使用该解决方案,因为只有internet附件对我有效,可能是其他类型附件的错误,无法摆脱“原始”下载问题。啊,我已经打开了Microsoft对此的支持,因此我可以看看我们是否能够找到问题的根源,如果没有直接的解决办法,我会更新问题并接受你的回答