ユーザーが最初に画像をWebページにアップロードし、そのフォームを送信すると、保存用に拡大された画像が表示される小さな画像スケーリングツールを構築しています。しかし、ユーザーが同じ画像を異なる幅と高さのパラメーターでスケーリングする要求を送信すると、問題が発生します。この場合、サーブレットで設定したコンテンツ処理ヘッダーが機能していないようで、2 番目のリクエストの後の画像は、コンテンツ処理で言及したファイル名と拡張子ではなく、サーブレットのクラス名のみで送信されます。ヘッダ。
response.setContentType("image/jpeg");
response.setHeader("Content-disposition","inline;filename="+filename);
ライター自体でハードコーディングも試みましたが、使用しているものにはファイル名のパラメーターがないようです
private void doDownload(HttpServletResponse resp, BufferedImage bump,
InputStream filecontent) throws IOException {
//http://stackoverflow.com/questions/9340569/jpeg-image-with-wrong-colors
OutputStream out = resp.getOutputStream();
Iterator<ImageWriter> iter = ImageIO
.getImageWritersByMIMEType("image/jpeg");
ImageWriter writer = iter.next();
ImageWriteParam iwp = writer.getDefaultWriteParam();
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
iwp.setCompressionQuality(1);
ImageOutputStream imgOut = new MemoryCacheImageOutputStream(out);
writer.setOutput(imgOut);
IIOImage image = new IIOImage(bump, null, null);
writer.write(null, image, iwp);
out.flush();
out.close();
writer.dispose();
}
出力ストリームに書き込むときに画像のファイル名を設定する方法はありますか?