如何将FileStreamResult转换为IFormFile?

时间:2017-05-24 17:58:15

标签: c# asp.net-mvc

我用这段代码改变了图像的大小。但是这个方法返回FileStreamResult。我想将FileStreamResult转换为IFromFile。我怎么能这样做?

注意:我使用this来更改图片大小

public FileStreamResult ChangeSize(IFormFile file)  
{
    using (var img = System.Drawing.Image.FromStream(file.OpenReadStream()))
    {
        Stream ms = new MemoryStream(img.Resize(100, 100).ToByteArray());

        return new FileStreamResult(ms, "image/jpg");
    }
}

2 个答案:

答案 0 :(得分:3)

这适用于文件,但似乎无法复制其他数据,例如内容类型

public IFormFile GetFormFile(FileStreamResult fsr)
{
    using (var fs = fsr.FileStream)
    {
        file = new FormFile(fs, 0, fs.Length, "name", fsr.FileDownloadName);
    }
}

答案 1 :(得分:0)

这应该处理将FileStreamResult转换为FormFile:

public IFormFile ReturnFormFile(FileStreamResult result)
{
    var ms = new MemoryStream();
    try
    {
        result.FileStream.CopyTo(ms);
        return new FormFile(ms, 0, ms.Length);
    }
    finally
    {
        ms.Dispose();
    }
}