2012-05-15 2 views
0

Как определить расширение файла для файла, который я хочу скачать? Я использую код ниже, чтобы загрузить файл.Тип расширения файла для загрузки

URL url = new URL("http://server.com/file.format"); 
DefaultHttpClient client = new DefaultHttpClient(); 
HttpGet get = new HttpGet(new URI(url.getProtocol(), url.getHost(), url.getPath(), url.getQuery(), null)); 

InputStream in = client.execute(get).getEntity().getContent(); 

//... read input stream and save to file 

У меня есть взгляд на другие связанные темы, но я не мог найти решение проблемы.

+0

Это зависит от того, чего именно вы пытаетесь достичь. Вы можете получить его из URL-адреса, угадать его из заголовка Content-Type или угадать его из содержимого файла. –

+1

В некоторых случаях расширение файла не существует в URL-адресе! Угадай, что не возвращает расширение файла, он возвращает MIME-тип! –

ответ

1

Если я правильно понимаю ваше расширение в вашем примере - это «формат». Другими словами, в строке используется URL-адрес, используемый для запроса файла. Для того, чтобы получить расширение из сдавших в строке файла используется, чтобы сделать использование URL:

str.substring(str.lastIndexOf('.')+1) 

[Изменено]

+0

Конечно, но я хочу получить тип файла расширения с использованием, например, MIME-типа (Content-Type of file). –

+0

И обратите внимание, что с помощью этого метода мы должны использовать 'str.substring (str.lastIndexOf ('.') + 1);' –

2

В интернете и в мире UNIX, нет такой вещи, как обязательный файл расширение. Это типичный образ мышления в стиле Windows.

В HTTP, наиболее близким к «расширению файла» является тип mime. Это фактическое описание типа контента, такое как text/html или image/gif. Но HTTP не поддерживает расширение . Вам придется сопоставлять типы mime с расширениями файлов самостоятельно!

Смежные вопросы