在使用springmvc的时候我们想要打开页面的时候展示的就是一张二维码或者图片,这个时候应该怎么实现呢?
先看效果图
此处是我通过后台直接在页面显示的图片,二维码内容为:认真学习Java,大小是470*470的图片,我们如何做到将一张图片直接在页面显示呢?
1.先说图片显示
1.1 假如你已在后台生成图片BufferedImage形式的图片流,如:
这样你就可以直接ImageIos配合response 将其打印在页面上,
1.2 假如你的图片已存在本地服务器,不需要你自己生成流了,这时候你只需要读取图片流就好了,如图完整代码展示
现在逐行解释,文件流的读取就没什么好说的了,主要实在进行response的时候要注意,响应内容的设置要一致,对不同的文件要设置不同的内容显示,这句代码
response.addHeader("Content-Disposition","attachment;filename=img.jpg");
这个是响应我们浏览器帮我们自动下载,文件名后缀的格式要和读取文件的格式一致,不一致也可以生成(最好一致),这个在我们做execle下载工具类用得到,对于要显示的内容和所对应的代码,给大家推荐个地址
http://rubyq.iteye.com/blog/1408141,可以参考这儿。
测试结果如图
其中注意文件名会出现AK 这样的乱码,在进行文件名拼接为中文的时候需要 URL decode j进行转换,这边就不做赘述,
在将图片转换为Base64的流,
这时候我们就可以直接在页面通过Base64显示