当前位置: 首页 > 编程日记 > 正文

图片的另一种展现—将后台图片编码直接展现为图片

1、应用场景

开发过程中,遇到这样的需求:需要将服务器上的图片展现在页面上,但是图片所在服务器不是对外的,图片所在服务器与应用服务器也不在同一台机器上,这时候就需要在开发中先将图片读出来,返回给应用服务器,应用服务器再对读取的图片进行处理,并展现。

一般,我们在struts2中我们都会通过两次请求,来获取图片,有一次的请求是专用来获取图片的流。

Struts的配置如下:

<result type="stream"> <param name="contentType">image/jpeg</param>   <param name="inputName">inputStream</param>   <param name="contentDisposition">filename="struts-gif.zip"</param>   <param name="bufferSize">4096</param>   
</result>

现在我们使用新的方式来获取图片,并展示。

2、读取图片

(a) 首先我们先读取图片,并编码;

public static String getImageStr(String path){File file = new File(path);if(file.exists()){InputStream inputStream = null;byte[] data = null;try {inputStream = new FileInputStream(file);data = new byte[inputStream.available()];inputStream.read(data);inputStream.close();} catch (Exception e) {e.printStackTrace();} BASE64Encoder encoder = new BASE64Encoder();return encoder.encode(data);}    else {return null;}}

(b) 服务交互部分使用的是hessian,略

(c) 页面的展现:

                                <td align="center" height="120" width="20%">图片:</td><td height="24" width="40%" align="center"><img id="imgObj" width="96" height="118" alt="y" src="data:image/gif;base64,<s:property value="photoStr"/>"/></td>

开发中使用了Struts2,展现的时候我们只需要让图片的src等于图片的base64的编码即可,不过切记编码必须和data:image/gif;base64,一起

转载于:https://www.cnblogs.com/kakag/p/3470083.html

相关文章:

电子学会青少年编程等级考试Python一级题目解析12

Python一级题目解析 1、题目&#xff08;2021.03&#xff09; 写一个计算长方形面积的程序&#xff0c;并对每行代码进行相应的注释&#xff0c;要求如下&#xff1a; &#xff08;1&#xff09;采用多行注释&#xff0c;说明程序的功能&#xff08;如下&#xff09;&#x…

Swing基础知识(更新中)

Swing是什么 做桌面应用程序的界面&#xff0c;GUI。 组件和容器&#xff1a;容器是特殊的组件。 布局管理器&#xff1a; 一般放中间容器&#xff0c;用来控制容器中组件的排列方式。 常见&#xff1a; ① FlowLayout 流布局(默认布局) 左上是起点&#xff0c;按组件加入容…

timesten 修改最大连接数

修改完/var/Timesten/sys.odbc.ini里面的connections之后 重启TT&#xff1a;ttdaemonadmin -restart 报错&#xff1a;15019: Only the instance admin may alter the Connections attribute Command> Command> connect dsn的名称;15019: Only the instance admin may a…

青少年编程竞赛交流群第050次活动录播

背景介绍 把电子学会的青少年编程能力等级测评作为游戏的关卡&#xff0c;带着小朋友们升级打怪&#xff0c;这个想法来自于 我从邵慧宁身上得到的启发。 升级打怪&#xff1a; 电子学会考评中心&#xff1a;http://www.qceit.org.cn/bos/default.html 知识内容&#xff1a…

JDBC连接mysql数据的7个步骤(讲解+源码)

步骤 源码 DBUtils类 package com.csu.db;import java.sql.*;public class DBUtils {public static Connection getConnection(){try {//[1/7] 加载JDBC的驱动Class.forName("com.mysql.cj.jdbc.Driver");//[2/7] 定义url连接参数String url "jdbc:mysql://l…

UML:概要设计,用什么画我的类图?

背景 做过需求之后&#xff0c;很少使用 UML 画概要设计&#xff0c;这几天尝试的用了几个工具&#xff0c;最总还是选择了 VisualStudio。 Edraw 详细信息很难编辑&#xff0c;如&#xff1a;签名。 Viso 添加成员太麻烦了。 VisualStudio 图形不支持着色。 备注 使用 VisualS…

RN Exception: Before building your project, you need to accept the license agreements and comp le...

异常 * What went wrong: A problem occurred configuring project :app. > You have not accepted the license agreements of the following SDK components: [Android SDK Platform 23, Android SDK Build-Tools 23.0.1]. Before building your project, you need to acc…

【组队学习】【35期】李宏毅机器学习(含深度学习)

李宏毅机器学习&#xff08;含深度学习&#xff09; 航路开辟者&#xff1a;王茂霖、陈安东&#xff0c;刘峥嵘&#xff0c;李玲领航员&#xff1a;梁家晖航海士&#xff1a;程浩伟、周小要、吴昌广 基本信息 开源内容&#xff1a;https://linklearner.com/datawhale-homepa…

git关键原理简介

集中化版本控制 缺点&#xff1a;1中央仓库得相当稳定&#xff0c;出问题可能每个人那里都没完整备份 2 只能在线使用&#xff08;今天网络已经不是问题&#xff09; 分布式版本控制 改进&#xff1a;每台客户机在本地都维护一份仓库 主要特点 保存数据和文件的主要方式 每个…

项目管理和缺陷跟踪工具Redmine

官网&#xff1a; http://www.redmine.org/ http://demo.redmine.org/ 下载&#xff1a; http://www.redmine.org/projects/redmine/wiki/Download Redmine 是一个开源的、基于Web的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示。同时它又支持多项目管理…

Redis (二)_ jedis的使用

Jedis 是 Redis 官方首选的 Java 客户端开发包 虚拟机设置 查看虚拟机的ipifconfig 将虚拟机的6379端口打开#运行下面的命令 如果是新建的一个新的 文件&#xff0c;你需要先安装 iptables&#xff0c;再打开 vim /etc/sysconfig/iptables## 安装命令 yum install -y iptables-…

【组队学习】【35期】数据可视化(Matplotlib)

数据可视化&#xff08;Matplotlib&#xff09; 航路开辟者&#xff1a;杨剑砺、杨煜、耿远昊、李运佳、居凤霞领航员&#xff1a;武帅航海士&#xff1a;叶庭云、李显、郭棉昇 基本信息 开源内容&#xff1a;https://github.com/datawhalechina/fantastic-matplotlib开源内…

解决日常bug的正确姿势

bug的错误分两种情况&#xff1a; ① 控制台报错->可以定位到错误位置(比较想看到的) ② 控制台不报错却达不到想要的功能->设计代码的逻辑有问题 问题解决方案的优先级(由高到低) ① 自己解决 a. 分析控制台的错误信息描述->定位问题的代码行数->分析该行代码前后…

02-NLP-01-python正则表达式

Python正则表达式 by 寒小阳(hanxiaoyang.mlgmail.com) 正则表达式是处理字符串的强大工具&#xff0c;拥有独特的语法和独立的处理引擎。 我们在大文本中匹配字符串时&#xff0c;有些情况用str自带的函数(比如find, in)可能可以完成&#xff0c;有些情况会稍稍复杂一些(比如说…

【组队学习】【35期】SQL编程语言

SQL编程语言 航路开辟者&#xff1a;王复振、杨煜、闫钟峰、杨梦迪、苏鹏领航员&#xff1a;庞永生航海士&#xff1a;王彦淳、木卷、丁一超 基本信息 开源内容&#xff1a;https://github.com/datawhalechina/wonderful-sql开源内容&#xff1a;https://hub.fastgit.org/da…

神经网络基础知识梳理

神经网络是什么 说明&#xff1a; 我们在机器学习中谈论的神经网络是指“神经网络学习”&#xff0c;即机器学习与神经网络这两个学科领域的交叉部分。 生物学意义上神经网络的最基本成分是神经元&#xff0c;计算机科学中的神经网络的最基本成分是神经元模型。 最广泛的一种…

Xcode 5 Error CertUIFramework.axbundle

Xcode 5 新建项目&#xff0c;运行总是出现错误&#xff1a; Cannot find executable forCFBundle0x8a7c7a0</Applications/Xcode.app/Contents/Developer/Platforms/ iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/System/Library/AccessibilityBundle…

【组队学习】【35期】深入浅出Pytorch

深入浅出Pytorch 航路开辟者&#xff1a;李嘉骐、牛志康、刘洋、陈安东领航员&#xff1a;朱松青航海士&#xff1a;管柯琴、宋泽山、林旭升 基本信息 开源内容&#xff1a;https://github.com/datawhalechina/thorough-pytorch内容属性&#xff1a;深度学习&#xff08;实践…

环形动画加载视图AnimatedCircleLoadingView​​​​​​​

2019独角兽企业重金招聘Python工程师标准>>> 环形动画加载视图AnimatedCircleLoadingView AnimatedCircleLoadingView是基于Android手表动画android-watch-loading-animation衍生出来的动画加载视图。该视图采用循环的环形动画显示加载进度。同时&#xff0c;开发者…

软件缺陷预测的两种定义

软件缺陷预测是根据软件产品中提取的度量信息和已经发现的缺陷来尽早地预测软件可能还存在的缺陷&#xff0c;基于预测结果可合理分配测试和验证资源。 软件缺陷预测作为实证软件工程的一个重要方向&#xff0c;通过对软件开发过程中积累的历史数据进行挖掘与分析&#xff0c;…

php函数:register_shutdown_function

php中register_shutdown_function函数用法详解&#xff1a; 由于程序出现一些不可预知的问题&#xff0c;给用户显示一个致命错误,又或者一个空白页(在display_errors设为off的情况下)&#xff0c;不是一个很好的处理方法 . PHP中有一个叫做 register_shutdown_function 的函数…

使用IDEA新建springboot工程

2019独角兽企业重金招聘Python工程师标准>>> 说明&#xff1a;因为习惯eclipse的workspace的结构&#xff0c;所以我提前新建了一个父工程&#xff0c;只是一个简单的maven工程&#xff0c;当做工作空间&#xff0c;下面的项目就是 module&#xff08;其实和项目一样…

【青少年编程竞赛交流】03月份微信图文索引

03月份微信图文索引 由于“组队学习”这个公众号的功能主要是组织Datawhale社群中的学习者们每个月的组队学习&#xff0c;所以&#xff0c;我另外新建了这个微信公众号“青少年编程竞赛交流”&#xff0c;在这个公众号上分享有关青少年编程方面的知识&#xff0c;带小朋友们参…

使用LaTeX排版如何方便地引用多篇参考文献(不使用插件)

本文是一篇适合排版参考文献较多的论文的教程&#xff0c;目的如题。 环境&#xff1a;TexStudio 在文献管理工具中将题录导出为BibTex 打开这个文件&#xff0c;尽管是.txt结尾&#xff0c;内部格式应当是这样的 注意红框的内容&#xff0c;一会要用到。 在TexStudio里面新…

详解亚马逊:物流为何是电商命脉

在物流环节上&#xff0c;亚马逊(AMZN)主要涉及物流中心运营&#xff0c;商品配送环节主要采取和第三方快递公司合作完成。那么&#xff0c;亚马逊物流促销活 动反映在财务收支上的结果又如何&#xff1f;根据年报数据&#xff0c;2011年亚马逊收到来自用户支付的运费总计15.5亿…

四月青少年编程组队学习(图形化四级)Task01

电子学会 软件编程&#xff08;图形化&#xff09;四级 组队学习 试题来源&#xff1a; 青少年软件编程&#xff08;Scratch&#xff09;等级考试试卷&#xff08;四级&#xff09;【2019.12】青少年软件编程&#xff08;Scratch&#xff09;等级考试试卷&#xff08;四级&am…

jmeter启动警告项解决方案

今天安装并且配置了jmeter压力测试软件&#xff0c;然后配置完了环境变量&#xff0c;但是在cmd命令行中输入jmeter --version命名&#xff0c;发现在会有警告信息&#xff0c;如图解决这个警告信息的方法&#xff1a;1、首先进入注册表中2、然后找到HKEY_LOCAL_MACHINESOFTWAR…

初识软件体系结构(1-4课时)

前四个课时的内容是“软件体系结构概述”。 LW老师的讲课带劲&#xff0c;逻辑性强&#xff0c;也接地气&#xff0c;节奏不快不慢&#xff0c;很nice&#xff5e; 软件架构师 这门课最对口的职业是软件架构师&#xff0c;软件架构师是工作在项目经理和程序员之间&#xff0c;既…

window.open和window.location.href的几种用法

windows.open("URL","窗口名称","窗口外观设定");<A href"javascript:window.open(webpage.asp,_self)"> 点击这里 </A><a οnclick"window.open(webpage.asp,_self);void 0" href"#"> 点击这里…

React.js绑定this的5种方法

this在javascript中已经相当灵活&#xff0c;把它放到React中给我们的选择就更加困惑了。下面一起来看看React this的5种绑定方法。 1.使用React.createClass 如果你使用的是React 15及以下的版本&#xff0c;你可能使用过React.createClass函数来创建一个组件。你在里面创建的…