gpt4 book ai didi

java - 无法将简单的 PNG 下载脚本从 PHP 转换为 Java

转载 作者:行者123 更新时间:2023-11-29 06:17:39 24 4
gpt4 key购买 nike

我正在尝试使用 Java servlet 从 Flash 应用程序下载 PNG 图像。我使用的是这个 PHP 脚本,它运行良好,但需要切换到 Java servlet。

PHP:

<?php
header('Content-Type: image/png');
header("Content-Disposition: attachment; filename=out.png");
echo base64_decode($_POST["image"]);
?>

还有我的 Java 代码:

String image = getRequest().getParameter("image");
String decodedImage = new String(Base64.decode(image));
HttpServletResponse resp = op.getResponse();
resp.setContentType("image/png");
resp.addHeader("Content-Disposition", "attachment;filename=out.png");
resp.getWriter().write(image);
resp.getWriter().flush();

我尝试了两个单独的 Base64 解码器类,结果相同。解码的 base64 被写为响应,但 PNG 已损坏。我在 HTTP 响应 header 中看到的一个区别是 Servlet 使用“image/png; charset=UTF-8”,而 PHP 脚本仅使用“image/png”。

感谢您的帮助!

修复 - 感谢 Ignacio Vazquez-Abrams!

resp.setContentType("image/png");
resp.addHeader("Content-Disposition", "attachment;filename=out.png");
resp.getOutputStream().write(image);
resp.getOutputStream().close();

最佳答案

使用 .getOutputStream(),而不是 .getWriter()。您需要将其作为二进制数据发送。

关于java - 无法将简单的 PNG 下载脚本从 PHP 转换为 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4472105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com