2010-12-01 7 views
1

私はASP MVCを使用しています。ユーザーがWebサーバーからファイルをダウンロード/表示できるようにします。Web:FileNameとFileContentからのファイルの生の内容を表示

ファイルはこのWebサーバーにありません。

私はファイルの内容byte[]配列を)知っている、ともファイル名

Web Broswerと同じ動作が必要です。たとえば、MIMEタイプがテキストの場合は、画像の場合はテキスト、バイナリの場合はダウンロード用に提案するテキストを参照したいと考えています。

これを行うにはどのような方法が最適ですか?

ありがとうございました。

答えて

0

画像のための答えは、他のタイプのためにhere

利用可能である、あなたは、ファイル名の拡張子からMIMEタイプを決定する必要があります。 Windowsレジストリまたはよく知られているハッシュテーブル、またはIIS構成(IIS上で実行している場合)を使用できます。

レジストリを使用する予定がある場合は、ここで指定した拡張子のMIMEコンテンツタイプを決定するコードは次のとおりです。

public static string GetRegistryContentType(string fileName) 
    { 
     if (fileName == null) 
      throw new ArgumentNullException("fileName"); 

     // determine extension 
     string extension = System.IO.Path.GetExtension(fileName); 

     string contentType = null; 
     using (Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(extension)) 
     { 
      if (key != null) 
      { 
       object ct = key.GetValue("Content Type"); 
       key.Close(); 
       if (ct != null) 
       { 
        contentType = ct as string; 
       } 
      } 
     } 
     if (contentType == null) 
     { 
      contentType = "application/octet-stream"; // default content type 
     } 
     return contentType; 
    } 
+0

私のWebサーバはIISまたはXSP(モノラル)となりますので、私はあることを想定することはできません私はWindowsレジストリにアクセスすることができます:-( –

+1

ohh ...あなたはいつでも固定リストに行くことができます。ここには開始として利用可能なリストがあります:http://www.w3schools.com/media/media_mimeref.asp –

+0

情報をありがとう私は2つのプロバイダ(LinuxまたはWindows用)を実装することを考えていましたが、最終的には固定リストを管理します(私はApacheサーバからmime.typesファイルを取得します) –

関連する問題