簡體   English   中英

如何在C#中讀取圖像和文本值?

[英]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

  1. 使用FileData屬性獲取發布的文件
  2. 使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM