java - 内容 - 处置 header 无法正常工作

标签 java image

我正在构建一个小型图像缩放工具,用户首先将图像上传到网页,并在提交该表单时显示放大的图像以供保存。但是,当用户发送请求使用不同的宽度和高度参数对同一图像进行缩放时,问题就出现了。在这种情况下,我在 servlet 中设置的内容处置 header 似乎不起作用,第二个请求后的图像仅使用 servlet 的类名发送,而不是我在内容处置中提到的文件名和扩展名标题。

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();

    }

有什么方法可以在将图像写入输出流时设置图像的文件名?

最佳答案

在此类中声明一个静态整数变量。

private static int fileno=0;


private void doDownload(HttpServletResponse resp, BufferedImage bump,
            InputStream filecontent) throws IOException {

Iterator iter = ImageIO.getImageWritersByFormatName("jpeg");
ImageWriter writer = (ImageWriter)iter.next();
ImageWriteParam iwp = writer.getDefaultWriteParam();
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
iwp.setCompressionQuality(1);
String OUTPUTFILE = "C:/Users/Harish/Desktop/jpegFile"+fileno++;
File file = new File(OUTPUTFILE);
//Your fileName will be jpegFile0; and next time jpegFile1 and so on.
FileImageOutputStream imgOut = new FileImageOutputStream(file);
writer.setOutput(imgOut);
IIOImage image = new IIOImage(bump, null, null);
writer.write(null, image, iwp);
writer.dispose();

 }

关于java - 内容 - 处置 header 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13953004/

相关文章:

image - 如何使用ffmpeg在视频帧的特定位置添加图像

java - 防止从没有命名空间的 XSD 生成重复类

java - 将图像加载到数组中

Javascript:图像对象的 onerror 事件有哪些参数?如何获取与图像相关的错误的更多详细信息?

java - 在java servlet中显示以字节数组形式存储的图像

delphi - Delphi 可以显示带图片的富文本的免费组件

java - 比较文本文件中相似字符串的行

java - 获取空短信正文

java - 如何使用 Swing 创建方法,使用计时器 sleep

java - Scala Lift - 从 "/resources/toserve"读取文件