如何在C#中读取图像和文本值?
如您所见,我试图通过POST命令向本地函数发送一个图像和一个名称 如何在C#中读取这两个参数 这是我尝试过的,但它只能读取文件图像如何在C#中读取图像和文本值?,c#,function,azure,post,C#,Function,Azure,Post,如您所见,我试图通过POST命令向本地函数发送一个图像和一个名称 如何在C#中读取这两个参数 这是我尝试过的,但它只能读取文件图像 [FunctionName("Test")] public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req
[FunctionName("Test")]
public static async Task<HttpResponseMessage>
Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route =
null)]HttpRequestMessage req, TraceWriter log)
{
//Check if the request contains multipart/form-data.
if (!req.Content.IsMimeMultipartContent())
{
return req.CreateResponse(HttpStatusCode.UnsupportedMediaType);
}
foreach (var stream in contents.Contents)
{
try
{
var fileBytes = await stream.ReadAsByteArrayAsync();
var fileinfo = new FileInfo(stream.Headers.ContentDisposition.FileName.Trim('"'));
//Can Read File image like this.
}
catch(Exception e)
{
return req.CreateErrorResponse(HttpStatusCode.Conflict, e);
}
[函数名(“测试”)]
公共静态异步任务
运行([HttpTrigger(AuthorizationLevel.Anonymous,“获取”、“发布”,路由=
null)]HttpRequestMessage请求,TraceWriter日志)
{
//检查请求是否包含多部分/表单数据。
if(!req.Content.IsMimeMultipartContent())
{
返回请求CreateResponse(HttpStatusCode.UnsupportedMediaType);
}
foreach(contents.contents中的变量流)
{
尝试
{
var fileBytes=await stream.ReadAsByteArrayAsync();
var fileinfo=newfileinfo(stream.Headers.ContentDisposition.FileName.Trim(“”);
//可以像这样读取文件图像。
}
捕获(例外e)
{
返回请求CreateErrorResponse(HttpStatusCode.Conflict,e);
}
您可以使用MultipartFormDataStreamProvider
FileData
属性获取发布的文件FormData
属性获取基于键发布的任何表单数据的值MultipartMemoryStreamProvider
,然后您可以利用以下代码读取上载的文件:
var multipartMemoryStreamProvider= await req.Content.ReadAsMultipartAsync();
foreach (HttpContent content in multipartMemoryStreamProvider.Contents)
{
// for reading the uploaded file
var filename= content.Headers.ContentDisposition.FileName.Trim('"');
var stream=await content.ReadAsStreamAsync();
//for formdata, you could check whether `content.Headers.ContentDisposition.FileName` is empty
log.Info($"name={content.Headers.ContentDisposition.Name},value={await content.ReadAsStringAsync()}");
}
此外,您可以按照以下步骤创建基于
MultipartMemoryStreamProvider
的自定义MultipartFormDataMemoryStreamProvider。以及基于MultipartStreamProvider
的自定义InMemorySmultipartFormDatastreamProvider。我必须使用此方法将文件保存到应用程序文件夹。有什么工作要做吗如何使用内存流这样做?