How to return a file result when I don't know the content type

Take the file extension, and look it up in the registry. The entry for it will have a "Content type" property.

Here's a complete example of returning a FilePathResult from a controller action:

string filePysicalPath, fileName; //these need to be set to your values.

var reg = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey( Path.GetExtension( filename ).ToLower() );
string contentType = "application/unknown";

if ( reg != null )
{
    string registryContentType = reg.GetValue( "Content Type" ) as string;

    if ( !String.IsNullOrWhiteSpace( registryContentType ) )
    {
        contentType = registryContentType;
    }
}

return File( filePysicalPath, contentType, filename );

Tags:

Asp.Net Mvc