图片流输出到前台成图片预览显示

            HttpServletResponse response = this.getResponse();
            response.setCharacterEncoding("UTF-8");
            response.reset(); 

            String fileName = URLEncoder.encode(fileInfo[2].toString(), "utf-8");
            String extension = FilenameUtils.getExtension(fileName);
            boolean isJPG = StringUtils.isBlank(extension) || extension.equalsIgnoreCase("jpg");
            extension = isJPG ? "jpeg" : extension;

            //这一步很重要,如果不设置预览正常,但是前天FileReader.src操作后就有问题。
            response.setContentType("image/".concat(extension).concat(";charset=UTF-8"));
            response.setHeader("Content-Disposition", "inline; filename=\"" + fileName + "\"");

            byte[] fileBytes = consoleService.downLoadFile(fileInfo[3].toString());
            ServletOutputStream os = response.getOutputStream();
            os.write(fileBytes);
            os.flush();
            os.close();

代码经过删除,看以下三部即可
response.setCharacterEncoding(“UTF-8”);
response.reset();
//这一步很重要,如果不设置预览正常,但是前天FileReader.src操作后就有问题。
response.setContentType(“image/jpeg;charset=UTF-8”);
response.setHeader(“Content-Disposition”, “inline; filename=\”” + fileName + “\”“);

注意 setContentType不要设置 image/* 表面上看没有问题,有时候会有问题。我就遇到这个坑

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
FYCMS是一款具有强大的功能的基于ASP语言的开源内容管理软件,有UTF-8和GB2312两个编码版本,支持ACCESS和MSSQL两种数据库。FYCMS是一款完全开源的程序,都毫无保留的完全开放源代码,用户不需额外安装其他DLL组件,其最大的特点是易用。 系统自带三大模型,系统模型,注册模型,表单模型,让你无顾虑制作属于自己的特色网站。 国内目前为止ASPCMS中唯一支持注册模型的CMS。 加入函数接口,如果对ASP熟悉一点的,您还可以自己编写函数来和系统融合,直接调用系统函数,4.0新增自定义表单将提交结果发送到邮箱,专题功能,在线主题,可以轻松下载在线模版,在线插件,心情指数,特别针对SEO优化的内部链接功能,支持伪静态功能,在线主题功能,让新手站长不会标签就可以制作网站。   一、系统特色: 1、独特模型管理。通过模型管理,您可以基于文章系统克隆出不同的模型,使用标签 模板可扩展图片、新闻、文章、下载、Flash...等多个频道。每个模型可以自定义显示添加选项,更为强大的是,您还可以自定义字段管理,可以随时根据需要自己自定义添加、设立、调整需要添加的选项,这些选项可以是文本框、下拉框等,也可以是图片、文件、随机数等。每个模型都具有易用的信息添加系统,简短和完整标题设置、分页设置、TOP设置、热点设置、是否允许评论、关键字、导读、阅读权限等等……不需要您再去二次开发插件。 2、强大标签管理。您只要将这些标签插入到页面需要的位置即可实现相应功能,而这一切不需要您去学ASP语言,因为这一切FYCMS已经为您完。系统拥有强大的标签自动生系统,任何您想要实现的功能,例如输出格式(table和div可选)、排序方法、文章属性、文章行距、文章数量、标题字数、日期格式、分隔图片、标题样式等等只需要在后台进行相关设置即可;任何网站所有的输出功能,如栏目文章、图片文章、幻灯片、循环栏目、分页文章、相关文章、网站导航、友情链接等,也只需要在后台进行相关设置即可。同时可以通过自定义标签的使用,创立自己独特标签,来让整个网站更为完善。 3、可选生格式。整个网站可以快速地、全部生静态页面,支持动态、纯静态等多种格式发布,易于搜索引擎的快速收录,有效提升网站搜索提名,充分满足您的多样化需要,让您的网站立于不败之地。发布静态站点时可以选择不同的后缀生名,可分别生各频道、栏目、网站首页的静态文件,也可以自主设置添加文章时是否同时生内容页、栏目页和首页。 4、特色会员系统。会员注册采用模型管理方式,您可以根据情况自定义添加不同的注册模型,如普通用户、企业用户等等,每个模型还可以自定义添加不同字段,如籍贯、头像、选项等。各个添加的用户组可以配置不同的权限和计费方式,如扣点数、有效期、无限期等。后台还配有充值卡添加管理功能和用户短信管理功能等。在会员操作前台,会员可以进行续费、交友、投稿等操作。会员管理系统还与行论坛高度整合,让整个网站与网站论坛完美融合,让您的网站更具竞争力。 5、齐全文章管理。在信息添加管理系统那里,具备齐全的文章管理功能。文章管理、审核、评论管理、tags管理、回收站、栏目添加管理、生操作等功能一应俱全。集系统内置了世界著名的开源编辑器FckEditor的HTML在线编辑系统,可在后台选择默认、简洁、超简洁等模式,使编辑文章能所见所得,添加新闻时还可根据分页标签自动分页。   二、其他功能 1、在线系统设置。在系统设置里面可以方便设置站点基本信息、进行管理员管理、日志管理、插件管理、维护数据库等。 2、无限级栏目分类。系统支持无限级分类,添加、修改、删除,操作十分简单方便。 3、多样化的模板管理。页面模板可以在线预览、添加、修改、删除,每个模型、栏目可以绑定不同的模板,让您的网站不再陷入单一化的页面状态,只要您愿意,您的站点绝不可能和其他人的站点有雷同。 4、友情链接系统。可以新增友情链接类别,审核申请的链接,在后台可以统计链接点击次数等。 5、留言系统。对留言进行回复、删除管理。 6、管理员权限分配。管理员分栏目管理员、模型管理员、超级管理员三级,可以给予某个管理员某个栏目的管理、增加、修改、删除、审核中的任一或多个操作权限,将责任细化到每个管理员,再也不用为管理责任不清而烦劳。 7、强大的图片新闻幻灯显示系统,采用FLASH或者纯图片方式,将您的图片文章以融合、百叶窗等多种交替方面幻灯显示,让您的网站与大网站相媲美 8、强大的文章显示功能,文章除了分页、页数统计这些,还拥有上一篇、下一篇提示、点击数、评论留言、查看权限(收费文章)、投稿系统等强大的功能 9、独创的Tags标签,该功能随着系统使用时间的增加,一个真正属于您自己的词库也在慢慢建立。可根据您的需要调用热门Tags,同论坛精华贴一样,让用户快速找到最有用的信息 合肥网络公司发布 10、配套采集功能。系统与ET采集系统无缝整合,提供接口,您可以通过强大的ET采集器将文章采集到FYCMS系统中。 11、超小的程序,仅有1M多点。虽然FYCMS拥有这么多的强大的功能,可是它的体积很小,这显然十分有益于大幅度提高网站的访问速度,非常适宜新站长和空间较小的站长使用,更多功能还有待您去挖掘. 12、免费而强大的后续支持。首先,FYCMS教程丰富。FYCMS虽然易用,但考虑到新人站长们很多并没有接触过网站制作等,所以FYCMS专门组建了视频教程制作小组,将整个FYCMS网站构建程制作出视频教程,只要会用鼠标、键盘就可以通过视频教程构建出属于自己的网站。其次,FYCMS专属QQ群:41460643无障碍免费为您提供程序使用咨询。 13、Google Sitemaps地图生操作,生符合GOOGLE规范的XML格式地图页面。 14、更多的惊喜请在使用中慢慢发掘。   更新说明: 修正会员中心发布文章,批量上传错误 修正内部链接返回链接错误和列表描述错误 修正编辑器在子目录下出现路径错误 修正投稿页面调用错误 修正验证码在高版本谷歌浏览器下不显示错误 修正幻灯片在子目录不显示错误 修正自定义表单提交错误 修正上传图片没有水印的问题 修正搜索关键字无法获取值的错误 修正采集插件,文件内容存储无法获取内容的错误 增加栏目自定义字段可指定显示 更新最新版编辑器 更新普通管理员右侧显示列表
实现按宽度等比例压缩图片并返回图片的接口,可以按照以下步骤进行: 1. 创建一个接口,定义按宽度等比例压缩图片并返回图片的方法。 ```java public interface ImageCompressorService { byte[] compressImage(String srcFilePath, int width) throws Exception; } ``` 2. 实现该接口,并在实现类中实现按宽度等比例压缩图片并返回图片的方法。 ```java import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import javax.imageio.ImageIO; public class ImageCompressorServiceImpl implements ImageCompressorService { @Override public byte[] compressImage(String srcFilePath, int width) throws Exception { // 读取原始图片文件 BufferedImage srcImage = ImageIO.read(new File(srcFilePath)); // 获取原始图片的宽度和高度 int srcWidth = srcImage.getWidth(); int srcHeight = srcImage.getHeight(); // 计算等比例缩小后的宽度和高度 int destWidth = width; int destHeight = (int) (srcHeight * ((double) destWidth / srcWidth)); // 创建一个新的 BufferedImage 对象 BufferedImage destImage = new BufferedImage(destWidth, destHeight, BufferedImage.TYPE_INT_RGB); // 绘制原始图片到新的 BufferedImage 对象上,并按比例缩小 Graphics2D g = destImage.createGraphics(); g.drawImage(srcImage, 0, 0, destWidth, destHeight, null); g.dispose(); // 将新的 BufferedImage 对象输出到 ByteArrayOutputStream 对象中 ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(destImage, "jpg", baos); // 返回压缩后的图片数据 return baos.toByteArray(); } } ``` 3. 在控制器中调用该接口方法,并将返回的图片输出前台的 image 标签里。 ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class ImageController { @Autowired private ImageCompressorService imageCompressorService; @GetMapping("/image/{id}") @ResponseBody public byte[] getImage(@PathVariable("id") String id) throws Exception { // 获取原始图片文件路径,这里假设原始图片文件名为 "{id}.jpg",保存在项目的 "images" 目录下 String srcFilePath = "images/" + id + ".jpg"; // 调用接口方法进行图片压缩,并返回压缩后的图片 byte[] compressedImageData = imageCompressorService.compressImage(srcFilePath, 800); // 返回压缩后的图片 return compressedImageData; } } ``` 上面的代码中,控制器的 getImage 方法接收一个参数 id,用于获取原始图片的文件名。在方法中,我们调用了 ImageCompressorService 接口的 compressImage 方法对原始图片进行压缩,并返回压缩后的图片。最后,我们将返回的图片直接输出前台的 image 标签里。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值