Как обычно люди определяют тип MIME загруженного файла с помощью ASP.NET?Как определить тип MIME загруженного файла в ASP.NET?
20
A
ответ
22
на странице ASPX:
<asp:FileUpload ID="FileUpload1" runat="server" />
в отделенного кода (C#):
string contentType = FileUpload1.PostedFile.ContentType
12
Приведенный выше код не даст правильный тип содержимого, если файл переименован и загружен.
Пожалуйста, используйте этот код для этого
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
Хотя Aneesh правильно сказать, что тип содержимого запроса HTTP не может быть правильно, я не думаю, что сортировочные для неуправляемого вызова стоит Это. Если вам нужно вернуться к сопоставлениям с расширением до mimetype, просто «заимствуйте» код из System.Web.MimeMapping.cctor (используйте Reflector). Этот словарьный подход более чем достаточен и не требует нативного вызова.
Смежные вопросы
- 1. Как надежно определить тип mime загруженного [текстового] файла в asp.net?
- 2. Как mime-тип загруженного файла определяется браузером?
- 3. Как проверить mime тип загруженного файла
- 4. Как определить тип файла mime в python?
- 5. Как определить тип файла MIME по содержанию?
- 6. Как получить MIME тип загруженного файла в Джерси
- 7. Как проверить тип файла MIME
- 8. Как проверить тип MIME загруженного файла с помощью Perl CGI?
- 9. не может определить тип MIME файла
- 10. Как определить тип файла
- 11. Mime-тип загруженного zip-файла - это приложение/октет
- 12. Проверить тип загруженного файла в Django
- 13. Как определить тип MIME через дескриптор файла в PHP?
- 14. Обнаружить MIME-тип загружаемого файла в Ruby
- 15. Как получить MIME Тип файла для загрузки?
- 16. Как получить MIME-тип файла, запрашиваемого в ASP.NET C#?
- 17. Как определить тип mime файла, размещенного на удаленном сервере?
- 18. Как определить, что тип mime для исполняемого файла?
- 19. Определение MIME Тип файла загрузки MAC-файла
- 20. Как определить тип динамически загруженного пользовательского контроля?
- 21. Определить тип файла в Ruby
- 22. Как получить MIME-тип файла в Qt?
- 23. Определить пользовательский тип mime в cq5/AEM
- 24. Как определить цветной режим загруженного изображения в ASP.Net
- 25. Проверка типа загруженного содержимого файла с помощью ASP.Net
- 26. Как определить тип файла?
- 27. Как определить тип содержимого файла в .NET?
- 28. Как определить тип файла файла?
- 29. Как изменить тип MIME файла с терминала?
- 30. Как установить MIME-тип локального файла?
На данный момент функция System.Web.MimeMapping.GetMimeMapping() является общедоступной и может быть вызвана напрямую. – 2014-10-20 16:43:25