action:
public String downloadHelp() {
try {
URL url = new URL(picUrl); //图片路径
BufferedImage image;
image = ImageIO.read(url);
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", os);
fileName=new String("排期图片下载.jpg".getBytes(), "ISO8859-1"); //中文编码防止乱码
imageStream = new ByteArrayInputStream(os.toByteArray());//转换为图片流
} catch (Exception e) {
}
return SUCCESS;
}
xml文件:
<action name="downloadHelp" class="QRCodeAction" method="downloadHelp">
<result name="success" type="stream"><!--type 为 stream 应用 StreamResult 处理 -->
<param name="contentType">jpg</param><!--默认为 text/plain -->
<param name="inputName">imageStream</param>
<!-- 默认为 inline(在线打开),设置为 attachment 将会告诉浏览器下载该文件,filename 指定下载文 件保有存时的文件名,若未指定将会是以浏览的页面名作为文件名,如以
download.action 作为文件名, 这里使用的是动态文件名,${fileName}, 它将通过 Action 的 getFileName()
获得文件名 -->
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="bufferSize">2048</param><!-- 输出时缓冲区的大小 -->
</result>
</action>
jsp:
调用:
ajax也可以.
window.location.href="downloadHelp?picUrl="+imgData; 也可以