如何在C#中读取图像和文本值?
正如您所看到的,我正在尝试通过POST命令向本地函数发送图像和名称。
如何在C#中读取这两个参数?
这是我尝试过但它只能读取文件图像。
[FunctionName("Test")] public static async Task 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); }
有没有像使用内存流一样的解决方法?
根据您的要求,我假设您可以使用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
创建自定义MultipartFormDataMemoryStreamProvider的此问题进行操作。 关于基于MultipartStreamProvider
构建自定义InMemoryMultipartFormDataStreamProvider的问题。
您可以使用MultipartFormDataStreamProvider
- 使用
FileData
属性获取已发布的文件 - 使用
FormData
属性获取基于密钥发布的任何表单数据的值。
检查此文件上载和多部分MIME 。
- 使用TableServiceEntity将复杂对象插入到azure表中
- CloudConfigurationManager不从app.config中获取ApplicationSettings
- Azure配置设置和Microsoft.WindowsAzure.CloudConfigurationManager
- 扩展基础移动azure样本(.net后端)
- 找不到项目文件
- validationSWT令牌REST WCF服务
- 通过运行asp.net mvc Web应用程序的IIS访问映射驱动器
- 添加/更改哪些程序集以将Silverlight Web应用程序部署到Windows Azure ?
- 如何通过POST将参数传递给Azure函数?