When you return a FileResult, use one of these subclasses ...
Then you can access the file through ...
- FileContentResult.FileContents byte []
- FilePathResult.FileName string / path
- stream FileStreamResult.FileStream
, , , // .
public static void ToFile(this FileResult fileResult, string fileName)
{
if (fileResult is FileContentResult)
{
File.WriteAllBytes(fileName, ((FileContentResult)fileResult).FileContents);
}
else if (fileResult is FilePathResult)
{
File.Copy(((FilePathResult)fileResult).FileName, fileName, true);
}
else if (fileResult is FileStreamResult)
{
using (var fileStream = File.Create(filename))
{
var fileStreamResult = (FileStreamResult)fileResult;
fileStreamResult.FileStream.Seek(0, SeekOrigin.Begin);
fileStreamResult.FileStream.CopyTo(fileStream);
fileStreamResult.FileStream.Seek(0, SeekOrigin.Begin);
}
}
else
{
throw new ArgumentException("Unsupported FileResult type");
}
}
, , ToFileOnDisk ToFile, , .