Преобразование IFormFile в Steam устанавливает тип контента в application / octet-stream - PullRequest
0 голосов
/ 19 апреля 2020

Я хочу загрузить файлы изображений в контейнер Azure Blob. Я использую. net основной метод публикации webapi для загрузки изображения. Загрузка прошла успешно, но тип содержимого недействителен, что приводит к преобразованию исходного image/jpeg типа в application/octet-stream.

[HttpPost]
public async Task<string> Post(IFormFile files)
{
    BlobClient blobClient = _containerClient.GetBlobClient(files.FileName);
    await blobClient.UploadAsync(files.OpenReadStream());
}

Может Кто-нибудь, помогите мне, как загрузить изображение с сохранением исходного типа контента.

Заранее спасибо.

1 Ответ

1 голос
/ 20 апреля 2020

Если вы хотите установить тип содержимого при загрузке файла в Azure blob, обратитесь к следующему коду:

// I use the sdk Azure.Storage.Blobs
[HttpPost]
public async Task<string> Post(IFormFile file)
{
    var connectionString = "the account connection string";
            BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
            BlobContainerClient containerClient =blobServiceClient.GetBlobContainerClient("test");
            await containerClient.CreateIfNotExistsAsync();
            BlobClient blobClient = containerClient.GetBlobClient(file.FileName);
            BlobHttpHeaders httpHeaders = new BlobHttpHeaders() { 
               ContentType=file.ContentType 
            };

            await blobClient.UploadAsync(file.OpenReadStream(), httpHeaders);

            return "OK";
}

Тест (я тестирую в Почтальоне) enter image description here enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...