title: How do I determine a file's content type in .NET?
body: <p>My WPF application gets a file from the user with Microsoft.Win32.OpenFileDialog()...</p>
  
  <pre><code>Private Sub ButtonUpload_Click(...)
      Dim FileOpenStream As Stream = Nothing
      Dim FileBox As New Microsoft.Win32.OpenFileDialog()
      FileBox.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
      FileBox.Filter = "Pictures (*.jpg;*.jpeg;*.gif;*.png)|*.jpg;*.jpeg;*.gif;*.png|" &amp; _
                       "Documents (*.pdf;*.doc;*.docx;)|*.pdf;*.doc;*.docx;|" &amp; _
                       "All Files (*.*)|*.*"
      FileBox.FilterIndex = 1
      FileBox.Multiselect = False
      Dim FileSelected As Nullable(Of Boolean) = FileBox.ShowDialog(Me)
      If FileSelected IsNot Nothing AndAlso FileSelected.Value = True Then
          Try
              FileOpenStream = FileBox.OpenFile()
              If (FileOpenStream IsNot Nothing) Then
                  Dim ByteArray As Byte()
                  Using br As New BinaryReader(FileOpenStream)
                      ByteArray = br.ReadBytes(FileOpenStream.Length)
                  End Using
                  Dim z As New ZackFile
                  z.Id = Guid.NewGuid
                  z.FileData = ByteArray
                  z.FileSize = CInt(ByteArray.Length)
                  z.FileName = FileBox.FileName.Split("\").Last
                  z.DateAdded = Now
                  db.AddToZackFile(z)
                  db.SaveChanges()
              End If
          Catch Ex As Exception
              MessageBox.Show("Cannot read file from disk. " &amp; Ex.Message, "Fail", MessageBoxButton.OK, MessageBoxImage.Error)
          Finally
              If (FileOpenStream IsNot Nothing) Then
                  FileOpenStream.Close()
              End If
          End Try
      End If
  End Sub
  </code></pre>
  
  <p>And my ASP.NET MVC application serves it up for download at a web site with FileStreamResult()...</p>
  
  <pre><code>Public Class ZackFileController
      Inherits System.Web.Mvc.Controller
  
      Function Display(ByVal id As Guid) As FileStreamResult
          Dim db As New EfrDotOrgEntities
          Dim Model As ZackFile = (From z As ZackFile In db.ZackFile _
                                  Where z.Id = id _
                                  Select z).First
          Dim ByteArray As Byte() = Model.ImageData
          Dim FileStream As System.IO.MemoryStream = New System.IO.MemoryStream(ByteArray)
          Dim ContentType As String = ?????
          Dim f As New FileStreamResult(FileStream, ContentType)
          f.FileDownloadName = Model.FileName
          Return f
      End Function
  
  End Class
  </code></pre>
  
  <p>But FileStreamResult() needs a content type string.  How do I know the correct content type of my file?</p>