首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NanoHTTPD:显示图片

NanoHTTPD:显示图片
EN

Stack Overflow用户
提问于 2016-09-08 22:26:06
回答 1查看 590关注 0票数 0

我尝试使用NanoHTTPD server在浏览器上显示图像,但总是没有显示。这是我的serve方法的一部分:

代码语言:javascript
复制
else if(uri.contains(".png")){
        SmallBinaryFiles smallBinaryFiles = new SmallBinaryFiles();
  InputStream is = new InputStream() {
            @Override
            public int read() throws IOException {
                throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
            }
        };
  long i=0; 
  try {
//smallBinaryFiles.readSmallBinaryFiles(uri): converts binary file given by uri to byte[]
            is = new ByteArrayInputStream(smallBinaryFiles.readSmallBinaryFile(uri));

  while ((is.read()) != -1){
      i++;
  }
        } catch (IOException ex) {
            Logger.getLogger(HelloServer.class.getName()).log(Level.SEVERE, null, ex);
        }

    return new NanoHTTPD.Response(NanoHTTPD.Response.Status.OK, MIME_PNG, is,i);

    } 
 //declaration of MIME_PNG in NanoHTTPD Core
public static final String  MIME_PNG = "image/png";
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-11 05:01:35

while()循环吃掉了所有的输入流,所以没有什么需要发送的了。将i替换为-1,以使其成为块响应。

此外,您的read()方法在被调用时似乎会抛出异常。请改用FileInputStream

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39393557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档