Я хотел бы получить тип содержимого удаленного файла, потому что у меня есть проблема при его загрузке. Тип контента неверен. Вот мой код, чтобы загрузить файлТип содержимого удаленного файла
url = "http://my_url/my_file.mp4"
file = open(URI::encode(url))
content_type = file.content_type # => text/plain instead of video/mpeg or video/mp4
Я попытался следующий код, чтобы получить CONTENT_TYPE раньше, но до сих пор не работает:
url = URI.parse(url)
Net::HTTP.start(url.host, url.port){|http| http.head(url.request_uri)['Content-Type']}
Кто-нибудь есть идеи?
Редактировать
Вот код, я использую, чтобы выяснить, какие CONTENT_TYPE это ..
MIME::Types.type_for(URI::encode(url)).map{|type| type.content_type}.join(' ')
# => "application/mp4 audio/mp4 video/mp4 video/vnd.objectvideo"
Но вот результат с видео со звуковой дорожкой .. Как я полагаю, только розовое "видео/mp4"? Я не могу проверить каждый тип файла, чтобы узнать, какой результат. Это бесконечно.
Вы пытаетесь выяснить, что это за файл, или значение заголовка Content-Type, возвращаемого сервером? –
Примечание: Обычно лучше писать 'URI.encode (...)'. Навигатор '::' namespace предназначен для модулей, классов и констант. – tadman
@Jordan Я пытаюсь узнать Content-Type. В принципе, я хотел бы быть уверенным, что загруженный файл является тем, кем он должен быть ... Согласно этому типу содержимого я создам экземпляр модели X или Y. – BriceB