Как преобразовать байтовый массив в IFormFile в C#. NET Core? - PullRequest
0 голосов
/ 06 мая 2020

Мне нужно знать, как преобразовать byte [] в IFormFile в C#, NET CORE. У вас есть идеи, как решить эту проблему?

Спасибо.

1 Ответ

0 голосов
/ 06 мая 2020

Исходный код FromFile.cs показывает, что он реализует интерфейс IFromFile . Хотя вы можете легко найти эти файлы из свойства HttpRequest.Form.Files при работе с HTTP-запросом, вы все равно можете создать собственный объект IFromFile через локальный файл или через массив байтов, который у вас уже есть. Пример, подобный этому, надежда помогает.

UnitTest.cs

[Fact]
public async Task FileUploadToStorage_ReturnTrue_Test()
{
    var testFilePath = "path/to/test.jpg";
    var testFileBytes = File.ReadAllBytes(testFilePath);
    var service = new FakeStorageService();
    using (var ms = new MemoryStream(testFileBytes))
    {
        IFormFile fromFile = new FormFile(ms, 0, ms.Length,
            Path.GetFileNameWithoutExtension(testFilePath),
            Path.GetFileName(testFilePath)
        );

        var result = await service.Upload(fromFile);
        Assert.True(result);
    }
}    

FakeStorageService.cs

public class FakeStorageService
{
    public async Task<bool> Upload(IFormFile file)
    {
        using (var fs = file.OpenReadStream())
        {
            return await GetStorage().UploadAsync(fs);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...