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"

Другие вопросы по тегам