1
我試圖從使用Java servlet的Flash應用程序下載PNG圖像。我正在使用這個完美運行的PHP腳本,但需要切換到Java servlet。無法將簡單的PNG下載腳本從PHP轉換爲Java
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響應頭文件中看到的一個區別是,當PHP腳本使用「image/png」時,Servlet使用「image/png; charset = UTF-8」。
感謝您的幫助!
FIX - 謝謝Ignacio Vazquez-Abrams!
resp.setContentType("image/png");
resp.addHeader("Content-Disposition", "attachment;filename=out.png");
resp.getOutputStream().write(image);
resp.getOutputStream().close();