2

我目前正在为黑莓开发,只是在尝试从服务器下载图像时遇到了这个问题。与设备通信的 servlet 工作正常,因为我已经对其进行了许多测试。但它给了我

413 HTTP 错误(“请求实体太大”)。

我想我只会得到字节,嗯,一部分一部分。我怎样才能做到这一点?

这是servlet(doGet()方法)的代码:

try {
    ImageIcon imageIcon = new ImageIcon("c:\\Users\\dcalderon\\prueba.png");

    Image image = imageIcon.getImage();
    PngEncoder pngEncoder = new PngEncoder(image, true);
    output.write(pngEncoder.pngEncode());

} finally {            
    output.close();        
}

谢谢。值得一提的是,我正在开发客户端和服务器端。

4

2 回答 2

1

我不知道服务器端代码。您可以查看此链接以了解如何使用分段上传文件以支持大文件上传

它也可以在黑莓上运行,需要进行一些修改。

http://www.developer.nokia.com/Community/Wiki/HTTP_Post_multipart_file_upload_in_Java_ME

于 2012-08-30T06:40:47.917 回答
0

我不熟悉PNGEncoder您正在使用的类,但只是查看您的 servlet 代码,以及您对请求大小(2.2 MB)的评论,我猜您的部分问题是您正在解压缩图像,然后通过网络传输。

我认为您的 servlet 中不应该有任何PNGEncoder代码ImageIcon"c:\\Users\\dcalderon\\prueba.png"您应该只使用普通字节读取文件InputStream,然后将其写入 servlet 的输出。我认为该文件是 PNG 图像、.mp3 文件还是任何其他内容并不重要。(尽管您可能需要将Content Type设置为image/png)。

所以,我会尝试传输压缩的图像(作为.png,就像它存储在磁盘上一样)。如果这仍然不起作用,那么建议使用多部分传输。

于 2012-09-01T03:33:39.773 回答