Android, как установить имя файла с помощью FileInputStream?
Я разрабатываю приложение, которое будет отправлять файл через HTTP-сервер (с nanoHTTPD) на другое устройство, вводя IP-адрес отправителя. Передача работает правильно, но я не могу получить правильное имя отправляемого файла (он называется браузером получателя как "по умолчанию", без каких-либо расширений). Вот мой код для HTTP-сервера:
закрытый класс WebServer расширяет NanoHTTPD { общедоступный WebServer() { супер (8080); } @Override Служба общественного реагирования (Строка uri, Метод метода, Заголовок карты, параметры карты, Файлы карт) { // получить путь моего файла от намерения Intent intent = getIntent(); String filename = intent.getStringExtra(MainActivity.FILENAME); FileInputStream file = null; пытаться { file = new FileInputStream(имя файла); } catch (FileNotFoundException e) { e.printStackTrace(); } вернуть новый NanoHTTPD.Response(Status.OK, "/", файл); }
Я думал, что могу это исправить, используя FileInputStream(new File(String path, String name))
но он все еще не работает должным образом, и он все еще дает мне имя файла по умолчанию с размером файла 0 байт.
Кто-нибудь может дать мне некоторое представление, как я могу получить правильное имя файла с HTTP-сервера? Надеюсь, что кто-то может помочь мне здесь. Спасибо!
1 ответ
Это зависит от того, что принимает ваш сервер (скрипт), при отправке вы должны добавить заголовки с именем вашего файла, это может быть:
Content-Disposition: attachment; filename="fname.ext"
пример с http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html "19.5.1 Content-Disposition"