Ben bir Java servlet kullanarak bir Flash uygulaması bir PNG görüntüsünü indirmek için çalışıyorum. Ben mükemmel çalıştı, bu PHP komut dosyası kullanarak, ancak bunun yerine bir Java servlet geçmek gerekir edildi.
PHP:
<?php
header('Content-Type: image/png');
header("Content-Disposition: attachment; filename=out.png");
echo base64_decode($_POST["image"]);
?>
Ve benim Java kodu:
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();
Ben aynı sonuçları ile iki ayrı Base64 dekoder sınıfları denedim. Çözümlenmiş base64 bir tepki olarak yazılır, ancak PNG bozuk. Ben HTTP cevap başlığında görebilirsiniz Bir fark Servlet kullanıyor olmasıdır "image / png; charset = UTF-8" PHP komut dosyası sadece "image / png" kullanır iken.
Yardımın için teşekkürler!
DÜZELTME - teşekkürler Ignacio Vazquez-Abrams!
resp.setContentType("image/png");
resp.addHeader("Content-Disposition", "attachment;filename=out.png");
resp.getOutputStream().write(image);
resp.getOutputStream().close();