如何在C# .NET Core中把字节数组转换为IFormFile?

如何在C# .NET Core中把字节数组转换为IFormFile?

我需要知道如何在C#中把字节[]转换为IFormFile,.NET COREDo你有什么办法解决这个问题吗?

谢谢你。

0
投票

源代码 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);
        }
    }
}