none
[C#] 如何取得檔案型態 MIME Type RRS feed

  • 問題

  • 請問當使用 Asp.net FilesUpload 都可以取得到檔案型態,例如..

    image/gif
    image/pjpeg

    這是 PostedFile.ContentType 可以取得的內容,那如果在上傳後暫存在實体目錄裡面使用 System.IO 去將檔案轉換成二進位,但這 MIME Type 要如何取得型態,就像是 Image/gif  or Image/Pjpeg 這些內容呢!!

     


    TAIWAN
    2010年4月28日 上午 07:49

解答

  • 假如是使用 Windows Forms,可以參考以下程式碼

      private void button1_Click(object sender, EventArgs e)
      {
       MessageBox.Show(MimeType(@"C:\TEST.jpg"));
      }
    
      private string MimeType(string Filename)
      {
       string mime = "application/octetstream";
       string ext = System.IO.Path.GetExtension(Filename).ToLower();
       Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
       if (rk != null && rk.GetValue("Content Type") != null)
        mime = rk.GetValue("Content Type").ToString();
       return mime;
      }

    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 PPTaiwan 2010年4月28日 上午 08:25
    2010年4月28日 上午 08:01
    版主

所有回覆

  • 假如是使用 Windows Forms,可以參考以下程式碼

      private void button1_Click(object sender, EventArgs e)
      {
       MessageBox.Show(MimeType(@"C:\TEST.jpg"));
      }
    
      private string MimeType(string Filename)
      {
       string mime = "application/octetstream";
       string ext = System.IO.Path.GetExtension(Filename).ToLower();
       Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
       if (rk != null && rk.GetValue("Content Type") != null)
        mime = rk.GetValue("Content Type").ToString();
       return mime;
      }

    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 PPTaiwan 2010年4月28日 上午 08:25
    2010年4月28日 上午 08:01
    版主
  • 太感謝了...這可以解決!!
    TAIWAN
    2010年4月28日 上午 08:25