人は、通常、ASP.NETを使用してアップロードされたファイルのMIMEタイプをどのように検出しますか? aspxページでASP.NETでアップロードされたファイルのMIMEタイプを検出するにはどうすればよいですか?
20
A
答えて
22
:分離コード(C#の)中
<asp:FileUpload ID="FileUpload1" runat="server" />
:ファイルの名前が変更し、アップロードされている場合
string contentType = FileUpload1.PostedFile.ContentType
12
上記のコードは、正しいコンテンツタイプを与えることはありません。
aneeshは、HTTPリクエストのコンテンツタイプが正しくないかもしれないことを言っ正しいですが、私は管理対象外の呼び出しのためのマーシャリングが価値があるとは思わないこと
using System.Runtime.InteropServices;
[DllImport("urlmon.dll", CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = false)]
static extern int FindMimeFromData(IntPtr pBC,
[MarshalAs(UnmanagedType.LPWStr)] string pwzUrl,
[MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.I1, SizeParamIndex = 3)] byte[] pBuffer,
int cbSize,
[MarshalAs(UnmanagedType.LPWStr)] string pwzMimeProposed,
int dwMimeFlags, out IntPtr ppwzMimeOut, int dwReserved);
public static string getMimeFromFile(HttpPostedFile file)
{
IntPtr mimeout;
int MaxContent = (int)file.ContentLength;
if (MaxContent > 4096) MaxContent = 4096;
byte[] buf = new byte[MaxContent];
file.InputStream.Read(buf, 0, MaxContent);
int result = FindMimeFromData(IntPtr.Zero, file.FileName, buf, MaxContent, null, 0, out mimeout, 0);
if (result != 0)
{
Marshal.FreeCoTaskMem(mimeout);
return "";
}
string mime = Marshal.PtrToStringUni(mimeout);
Marshal.FreeCoTaskMem(mimeout);
return mime.ToLower();
}
10
ためにこのコードを使用してくださいそれ。 Extension-to-Mimetypeマッピングに戻す必要がある場合は、System.Web.MimeMapping.cctor(Reflectorを使用)からコードを単に「借りる」だけです。この辞書によるアプローチは十分であり、ネイティブコールを必要としません。
関連する問題
- 1. asp.netでアップロードされた[テキストベース]ファイルのMIMEタイプを確実に検出するにはどうすればよいですか?
- 2. S3にアップロードされたファイルのMIMEタイプ
- 3. アップロードされたファイルがMIMEタイプのない画像であるかどうかを確認するにはどうすればよいですか?
- 4. どのようにpythonでファイルのMIMEタイプを検出するには?
- 5. ファイルをダウンロードする前にファイルのMIMEタイプを取得するにはどうすればよいですか?
- 6. アップロードされているファイルのInputStreamのMIMEタイプを取得するにはどうすればよいですか?
- 7. PHPはアップロードされたファイルのMIMEタイプをどのように評価しますか?
- 8. Firefoxのhttpアップロードで.jsファイルのMIMEタイプの自動検出に失敗する
- 9. ASP.NETファイルのアップロード:アップロードされたファイルが本当にJPEGであることを確認するにはどうすればよいですか?
- 10. アップロードされたファイルの拡張子をPHPで取得するにはどうすればよいですか?
- 11. ディスパッチキュー(シリアルまたは並行)のタイプを検出するにはどうすればよいですか?
- 12. ImageクラスインスタンスのMIMEタイプをC#でメモリに取得するにはどうすればよいですか?
- 13. Ruby on Railsでアップロードされたファイルのサイズを調べるにはどうすればよいですか?
- 14. PHPでMIMEタイプを検出する
- 15. FileinfoでWebM MIMEタイプを検出する
- 16. ウィンドウ上にドラッグされたファイルを検出するにはどうすればいいですか?
- 17. mod_pythonでファイルをアップロードするにはどうすればよいですか?
- 18. ファイルに応じてMIMEタイプを知るにはどうすればいいですか?
- 19. ファイルがアップロードされたかどうかの検出
- 20. 複数のファイルをアップロードするにはどうすればよいですか?
- 21. Base64でエンコードされたWebフォントの "onload"を検出するにはどうすればよいですか?
- 22. WebVTTドキュメントをUTF-8とMIMEタイプ= "text/vtt"でエンコードするにはどうすればよいですか?
- 23. ファイルがアップロードされたことを確認するにはどうすればよいですか?
- 24. ファイルがネットワーク上にあるかどうかを検出するにはどうすればよいですか?
- 25. zipファイルの中で私に送られた拡張子のないファイルのMIMEタイプを見つけるにはどうすればいいですか?
- 26. ChromeのMIMEタイプのマッピングを編集するにはどうすればよいですか?
- 27. ファイルがコントローラにアップロードされていることをテストするにはどうすればよいですか?
- 28. 動的に描画されたグラフィックのクリックを検出するにはどうすればよいですか?
- 29. エンティティにバインドされたバインディングソースの変更を検出するにはどうすればよいですか?
- 30. テーブルビューでアイテムが変更されたときを検出するにはどうすればよいですか?
この時点で、System.Web.MimeMapping.GetMimeMapping()関数はpublicであり、直接呼び出すことができます。 –