2

私は現在、ブラックベリーの開発を行っていますが、サーバーから画像をダウンロードしようとしたときに、この問題に遭遇しました。デバイスが通信するサーブレットは、多くのテストを行ったので、正しく機能しています。しかし、それは私に

413 HTTP エラー (「要求エンティティが大きすぎます」)。

私は、バイトを少しずつ取得するだけだと思います。どうすればこれを達成できますか?

これは、サーブレット (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あなたが使用しているクラスに精通していませんが、あなたのサーブレット コードと、リクエスト サイズ (2.2 MB) についてのコメントを見るだけで、あなたの問題の一部は圧縮を解除していることだと思います。画像をネットワーク経由で送信します。

サーブレットにコードを含める必要はないと思いPNGEncoderます。ファイルを通常のバイトとしてImageIcon読み込み、それをサーブレットの出力に書き込む必要があります。そのファイルが PNG 画像、.mp3 ファイル、またはその他のコンテンツであるかどうかは問題ではないと思います。(ただし、コンテンツ タイプをに設定する必要がある場合があります)。"c:\\Users\\dcalderon\\prueba.png"InputStreamimage/png

そのため、画像を圧縮して送信してみます(ディスクに保存されているのと同じように .png として)。それでもうまくいかない場合は、マルチパート転送を使用することをお勧めします。

于 2012-09-01T03:33:39.773 に答える