Jak zwykle ludzie wykrywają typ MIME przesłanego pliku za pomocą ASP.NET?Jak wykryć typ MIME załadowanego pliku w ASP.NET?
20
A
Odpowiedz
22
na stronie aspx:
<asp:FileUpload ID="FileUpload1" runat="server" />
w związanym kodzie (C#):
string contentType = FileUpload1.PostedFile.ContentType
12
Powyższy kod nie da poprawny typ zawartości, jeśli plik zostanie zmieniona i przesłany.
Proszę użyć tego kodu do tego
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
Podczas aneesh ma rację mówiąc, że typ zawartości żądania HTTP nie może być prawidłowa, nie sądzę, że przetaczanie dla niekontrolowana rozmowy warto to. Jeśli musisz cofnąć się do mapowania rozszerzeń na mimet, po prostu "pożycz" kod z System.Web.MimeMapping.cctor (użyj Reflector). To podejście słownikowe jest więcej niż wystarczające i nie wymaga połączenia natywnego.
Powiązane problemy
- 1. Wykryj typ MIME załadowanego pliku w Ruby
- 2. ASP.NET MVC Ustal typ mime według ścieżki pliku/pliku
- 3. Jak uzyskać typ MIME pliku w Qt?
- 4. Django - Pobierz typ pliku/typ MIME
- 5. Pobierz typ MIME pliku Python
- 6. Jak uzyskać typ MIME pliku .msg?
- 7. Jak określić typ MIME pliku według zawartości?
- 8. Jak wykryć przesłany typ pliku w angularJS
- 9. Jak prawidłowo wykryć typ pliku PHAsset (GIF)?
- 10. Co to jest typ mime pliku wsdl?
- 11. Msoffice typ MIME weryfikacja
- 12. Jak uzyskać typ MIME pliku przekazany w Jersey
- 13. ASP.NET/IIS6: Jak przeszukiwać mapę mime serwera?
- 14. ustawienie typu MIME w ASP.NET
- 15. PHP, Jak uzyskać typ Mime - Mission Impossible?
- 16. Jak ustawić typ mime na pliku za pomocą php?
- 17. Typ mime YAML?
- 18. Typ MIME dla WP8 AET
- 19. Biblioteka NET do wykrywania typu pliku/mime
- 20. Jak wykryć typ przeglądarki w Django?
- 21. Jak określić odpowiednie rozszerzenie pliku z typu MIME w Javie
- 22. Jak określić typ MIME zgodnie z plikiem?
- 23. Który typ MIME jest poprawny dla pliku .exe?
- 24. Flask/Python. Pobierz typ MIME z przesłanego pliku
- 25. prawidłowy typ MIME dla JSON?
- 26. Typ pliku Microsoft Office 2007, typy MIME i identyfikatory znaków
- 27. Android - pobierz typ MIME z pliku bez rozszerzenia
- 28. MIME Typ OBF i MTL Wavefront
- 29. Jak określić typ MIME plików bez rozszerzenia w konfiguracji NGINX?
- 30. Jak określić typ MIME schowka wklejanego do kopiowania?
W tym momencie funkcja System.Web.MimeMapping.GetMimeMapping() jest jawna i można ją wywołać bezpośrednio. –