У меня есть простая веб-форма, которая отправляет и отправляет электронную почту через .NET C #.Кроме того, существует ASP UPLOAD ctrl, из которого я создаю поток памяти и присоединяю поток к почтовому сообщению ... т.е. нет необходимости сохранять файл в файловую систему.
ПРОБЛЕМА: Когда пользователи MAC не вводят расширения в свои загруженные файлы (я проверяю для файла PostedFile.ContentType, чтобы определить файл и / или соответствующее расширение, допустимые файлы RTF, TXT, PDF, DOC, DOCX), кажется,как ContentType возвращается как «application / octet» ... это имеет некоторый смысл для меня без расширения, как того требуют ПК, но;До сих пор неясно, будет ли чтение содержимого ContentType или расширения лучше определить, к какому типу файлов это относится, прежде чем прикреплять.[Расширительный MAC-файл, очевидно, не сможет выполнить любой тест на расширение]
По сути, я читаю файл с помощью ctrl при загрузке, определяю его ContentType, удаляю только файл PostedFile.Filename, а затем снова собираю, когда создаю вложение, используяСтрока ContentType в операторе switch для определения и добавления правильного расширения во вложенный файл (имя файла + ext).Я сделал это для того, чтобы пользователи MAC, которые не используют расширения, могли по-прежнему загружать без создания .ZIP или другого пакета.
Вопрос 1. Правильна ли моя логика в отношении решения этой проблемы, передовой опыт?Вопрос 2. Будут ли все MAC-файлы возвращаться как «application / octect», если не используется расширение для MAC, и если да, то как кто-то может определить, какой это тип файла на самом деле?(Примечание: PDF работал нормально, когда не использовал расширения на платформе MAC).
Заранее спасибо.Если пример кода необходим, пожалуйста, сообщите.