[英]How to read an image and text value in C#?
如您所見,我正在嘗試通過POST命令向本地函數發送圖像和名稱。
如何在C#中讀取這兩個參數?
這是我嘗試過的方法,但只能讀取文件映像。
[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);
}
您可以使用MultipartFormDataStreamProvider
FileData
屬性獲取發布的文件 FormData
屬性獲取基於鍵發布的任何表單數據的值。 檢查此文件上載和分段MIME 。
有沒有解決辦法,例如使用內存流?
根據您的要求,我假設您可以使用HttpContentMultipartExtensions.ReadAsMultipartAsync並獲得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
創建自定義MultipartFormDataDataMemoryStreamProvider的問題。 而這個問題,如何構建基於定制InMemoryMultipartFormDataStreamProvider MultipartStreamProvider
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.