Мне нужно создать локальный сервер, который сможет обслуживать локальные файлы устройства. Я нашел это library и, похоже, он способен удовлетворить мои потребности.Служить изображения на локальном сервере с помощью NanoHttpd
Я пробовал образец внутри этого проекта, и он отлично работает! Но он публикует .html-страницу, и мне нужны фотографии.
Я следил за этим post где .mp3 был подан. Но это не работает для меня. Вероятно, это потому, что библиотека была обновлена с того времени.
@Override
public Response serve(IHTTPSession session) {
FileInputStream fis = null;
try {
File file = new File(Environment.getExternalStoragePublicDirectory(ROOT)
+ PATH + "picture.jpg"); //path exists and its correct
fis = new FileInputStream(file);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return new NanoHTTPD.Response(Response.Status.OK, "image/jpeg", fis, 1000000); //the last parameter is totalBytes. Not sure what to put there
}
Сервер запускается в OnCreate:
//start web server
try {
server = new WebServer();
server.start();
} catch (IOException e) {
e.printStackTrace();
}
Цель состоит в том, чтобы получить доступ к файлам так: 192.168.1.2:8080/picture.jpg
Может кто-нибудь предложить решение? Заранее спасибо.
Start с использованием методы, отличное обслуживание(). Один с ури и параметрами. Как в ссылке на эту почту, которую вы предоставили. Затем вы можете извлечь 'picture.jpg. первый или другие имена файлов. И вы не сказали, что именно не работает для вас. 'Спасибо заранее.' Очень неправильно. Вы должны пообещать поблагодарить, если вам помогут. – greenapps
@greenapps, 'serve()' с параметрами устарел. Во всяком случае, я уже пробовал это. Любое из них не похоже на файлы сервисов. Я не могу получить к ним доступ по ip. На экране ничего не отображается – AnZ
Ваш код должен быть в порядке, но удалите параметр: '1000000); // последний параметр totalBytes.' – greenapps