首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BOT框架下机器人仿真器附件上传问题

BOT框架下机器人仿真器附件上传问题
EN

Stack Overflow用户
提问于 2017-07-27 18:02:15
回答 1查看 296关注 0票数 0

我在机器人模拟器中上传附件,上传附件后,我将其转换为base64,以将其传递给我们的服务。我从path D:\Images\MobileRequest.PNG中选择了这个附件,但是在将它上传到机器人应用程序后,它将附件的路径显示为http://127.0.0.1:44185/v3/attachments/ne7djbemc9f40bifi/views/original/MobileRequest.PNG,因为图像在此路径上不可用,因此在将图像转换为base64时,它抛出一个错误,因为"URI格式不受支持。“

如何在机器人应用中获取实际物理路径,即"D:\Images\MobileRequest.PNG“。以下是我的机器人应用程序中的代码

代码语言:javascript
复制
var dialog = new PromptDialog.PromptAttachment("Please attach screenshot ", "Sorry, I didn't get the attachment. Try again please.", 2);
context.Call(dialog, afterUpload);

private async Task afterUpload(IDialogContext context, IAwaitable<IEnumerable<Attachment>> result)
{
       IEnumerable<Attachment> attach = await result;
       string filePath = attach.FirstOrDefault().ContentUrl + "/" + attach.FirstOrDefault().Name;
       context.UserData.SetValue("filePath", filePath);  
}

string filePath =  string.Empty;
context.UserData.TryGetValue("filePath", out filePath);
using (System.Drawing.Image image = System.Drawing.Image.FromFile(filePath))
{
   using (MemoryStream m = new MemoryStream())
   {
     image.Save(m, image.RawFormat);
     byte[] imageBytes = m.ToArray();
     attach1 = Convert.ToBase64String(imageBytes);
   }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-27 19:45:49

您的机器人将被部署,因此您将无法访问本地文件。

您可以通过执行以下操作轻松转换位于URL的图像:

代码语言:javascript
复制
using (var client = new HttpClient())
{
     var bytes = await client.GetByteArrayAsync(imageUrl);
     var imageInBase64String = "image/jpeg;base64," + Convert.ToBase64String(bytes);

     // Do what you want with your converted image
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45347474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档