c# - 如何在 HttpRequestMessage 中传递图像文件?
问题描述
我想将图像内容传递到HttpRequestMessage
. 我正在尝试以下方法。
public async Task UploadImage()
{
string Imgpath = @"d:\Dummy.jpg";
var requestMessage = new HttpRequestMessage();
FileStream fileStream = File.OpenRead(Imgpath);
requestMessage.Content = new StreamContent(fileStream);
}
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage httpRequestMessage,
TraceWriter traceWriter)
{
var imagecontent = httpRequestMessage.Content;
string Testcontent = imagecontent.ReadAsStringAsync().Result;
// Testcontent value is coming like this "����qExif"
var ms = new MemoryStream(Convert.FromBase64String(Testcontent));
// Here i am getting error the input is not a valid Base-64 string
// as it contains a non-base 64 character, more than two padding characters,
// or an illegal character among the padding character.
}
解决方案
在将数据传递给 HTTPRequest 之前,您没有将数据转换为 base64 字符串。
private string ConvertImageToBase64(byte[] imageBytes)
{
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
尝试这样的事情将其转换为base64字符串,然后将内容设置为获得的字符串。
requestMessage.Content = new StreamContent(base64string);
PS:您也可以通过multipart/form-data
请求将图像数据作为二进制传递,然后分别在另一端解码。
推荐阅读
- meson-build - 从介子脚本修改安装前缀
- hibernate - 可选的@OneToOne 和更新不起作用
- python - 创建逐步函数以在给定时间间隔后增加 x
- ios - 在 RxSwift 中修改 behaviorRelay 数组内的属性
- powershell - 使用强身份验证方法检查启用 MFA 的管理员
- javascript - 如何修复不起作用的 Javascript 函数?
- batch-file - Cmd 脚本返回一个非零代码,ansible 得到一个零代码
- sql - 使用 Row_Number() 和/或 Cursor 更新一组记录,并在满足条件时中断 - SQL Server
- powerquery - 功率查询中的countif公式
- mysql - 减去两个子查询的结果