人は、通常、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. アップロードされたファイルがMIMEタイプのない画像であるかどうかを確認するにはどうすればよいですか?
- 3. S3にアップロードされたファイルのMIMEタイプ
- 4. ファイルのアップロード中に元のMIMEタイプを見つけるにはどうすればいいですか?
- 5. どのようにpythonでファイルのMIMEタイプを検出するには?
- 6. ファイルをダウンロードする前にファイルのMIMEタイプを取得するにはどうすればよいですか?
- 7. アップロードされたファイルのBLOBタイプを取得するにはどうすればよいですか?
- 8. 正しいMIMEタイプのhttprouterで静的ファイルを提供するにはどうすればよいですか?
- 9. アップロードされているファイルのInputStreamのMIMEタイプを取得するにはどうすればよいですか?
- 10. PHPはアップロードされたファイルのMIMEタイプをどのように評価しますか?
- 11. Firefoxのhttpアップロードで.jsファイルのMIMEタイプの自動検出に失敗する
- 12. ASP.NETファイルのアップロード:アップロードされたファイルが本当にJPEGであることを確認するにはどうすればよいですか?
- 13. タイプがstd :: tupleかどうかを検出するにはどうすればよいですか?
- 14. アップロードされたファイルの拡張子をPHPで取得するにはどうすればよいですか?
- 15. ImageクラスインスタンスのMIMEタイプをC#でメモリに取得するにはどうすればよいですか?
- 16. ディスパッチキュー(シリアルまたは並行)のタイプを検出するにはどうすればよいですか?
- 17. Firefoxの履歴にあるURLのMIMEタイプを取得するにはどうすればよいですか?
- 18. FTPにアップロードされたファイルの内容をテストするにはどうすればよいですか?
- 19. Ruby on Railsでアップロードされたファイルのサイズを調べるにはどうすればよいですか?
- 20. javascriptで画像/ blobのMIMEタイプを取得するにはどうすればよいですか?
- 21. ファイルに応じてMIMEタイプを知るにはどうすればいいですか?
- 22. FileinfoでWebM MIMEタイプを検出する
- 23. PHPでMIMEタイプを検出する
- 24. GoogleドライブのアップロードされたPDFのMimeタイプを変更する
- 25. POSTでファイルをアップロードするにはどうすればよいですか?
- 26. hidden_fieldでファイルをアップロードするにはどうすればよいですか?
- 27. Python Seleniumでファイルをアップロードするにはどうすればよいですか?
- 28. mod_pythonでファイルをアップロードするにはどうすればよいですか?
- 29. ウィンドウ上にドラッグされたファイルを検出するにはどうすればいいですか?
- 30. アップロードされたファイルのファイルパスを取得するにはどうすればよいですか?
この時点で、System.Web.MimeMapping.GetMimeMapping()関数はpublicであり、直接呼び出すことができます。 –