首页 > 解决方案 > 如何在将文件上传到 Azure 之前从多部分表单数据中提取文件名和其他属性

问题描述

在将文件上传到天蓝色之前,我想根据服务器上的应用程序逻辑提取并设置文件名。

我当前的场景:客户端 -> 应用程序 Web Api -> Azure 存储

以下是代码:

public async Task<IHttpActionResult> UploadProfilePic()
    {
        if (!Request.Content.IsMimeMultipartContent())
        {
            throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
        }

        AzureStorageCls = new MyAzureStorage(WebApiApplication.AllowedImageExtensions);

//Need to set file name based on custom logic prior to upload of image

//Below method calls the  pRequest.Content.ReadAsMultipartAsync(provider) of custom MultipartStreamProvider
        BlobStorage BlobImage = await AzureStorageCls.UploadImageToAzure(modifiedFileName, Request);

        return Ok();

    }

我们想根据 id 自定义我们发送到 azure blob 存储的文件名

但正如我现在所知,我们只有在提供程序中调用 ReadAsMultipartAsync(provider) 后才能获取所有属性。

我确信必须有一种更简单的方法来解决这个我不知道的问题

任何帮助将不胜感激。提前致谢

标签: c#azureasp.net-web-api2azure-storage

解决方案


IFormFile想将文件上传到我的 API 时使用。Name您可以使用以下属性检索文件名:

public async Task<IHttpActionResult> UploadProfilePic([FromForm]IFormFile uploadFile))
{
    // do something with uploadFile.Name 
}

推荐阅读