java-web开发如何传输图片(图片的处理)–毕设开发中遇见的问题1

图片的传输

图片传输可以将图片传输为BASE64通过http进行传输

图片传输的问题

http传输会导致系统base64换行,经过测试,需要删除换行符等等。代码如下。image是前端传来的BASE64字节流。(这个问题很坑,网上有很多不同的原因,不同的解决方案,实测http协议传输此方法有效果)
image = image.replaceAll("\\r|\\n", "");

判断图片的格式

BASE64字节流可以直接判断图片的格式。代码如下。

 public static String checkImageBase64Format(String base64ImgData) {//decodebyte[] b = Base64.getMimeDecoder().decode(base64ImgData);//        byte[] b = Base64.getDecoder().decode(base64ImgData);String type = "";if (0x424D == ((b[0] & 0xff) << 8 | (b[1] & 0xff))) {type = "bmp";} else if (0x8950 == ((b[0] & 0xff) << 8 | (b[1] & 0xff))) {type = "png";} else if (0xFFD8 == ((b[0] & 0xff) << 8 | (b[1] & 0xff))) {type = "jpg";}return type;}

BASE64转换为图片

public static boolean GenerateImage(String imgData, String imgFilePath) throws IOException { // 对字节数组字符串进行Base64解码并生成图片if (imgData == null) // 图像数据为空return false;BASE64Decoder decoder = new BASE64Decoder();OutputStream out = null;try {out = new FileOutputStream(imgFilePath);// Base64解码byte[] b = decoder.decodeBuffer(imgData);for (int i = 0; i < b.length; ++i) {if (b[i] < 0) {// 调整异常数据b[i] += 256;}}out.write(b);} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {out.flush();out.close();return true;}}

图片转换为BASE64

 public static String imageToBase64Str(String imgFile) {InputStream inputStream = null;byte[] data = null;try {inputStream = new FileInputStream(imgFile);data = new byte[inputStream.available()];inputStream.read(data);inputStream.close();} catch (IOException e) {e.printStackTrace();}// 加密BASE64Encoder encoder = new BASE64Encoder();return encoder.encode(data);}

java-web开发图片的处理相关推荐

  1. java web 开发之写在前面(0)

    java是sun公司(现在属于Oracle公司)推出的能够跨越多平台的.可以执行最高的一种面向对象的编程语言,也是目前最先进.特征最丰富.功能最强大的计算机语言.利用java可以编写桌面应用程序,we ...

  2. 如何搭建java web环境_搭建java WEB开发环境和应用

    搭建java WEB开发环境和应用 更新时间:2009年06月07日 02:28:56   作者: 使用Tomcat服务器,使用DBCP数据源搭建Web开发环境 一 使用Tomcat服务器,使用DBC ...

  3. Java WEB开发实战 之 第二部分:Web应用基础知识【私塾在线原创】

    基础知识概述 Internet 中文名也称"因特网"或"国际互联网",是一个由各种独立运行和管理的计算机网络组成的全球范围的计算机网络,网络间可以畅通无阻地交换 ...

  4. Java Web开发技术方案

    Java Web开发技术方案 Java Web开发分前端.后端: Java Web前端: -就是在Web应用中用户可以看得见碰得着的东西.包括Web页面的结构.Web的外观视觉表现以及Web层面的交互 ...

  5. java web开发工具有哪些?

    工欲善其事,必先利其器,好的开发工具能让程序猿们的Java web开发学习坐上高铁快车.那么今天小编就先整理一下感觉用来feel 倍爽的开发神器吧! 一.IntelliJ IDEA idea相信很多小 ...

  6. java web开发初学_2018年学习Web开发的绝对初学者指南

    java web开发初学 This post was originally published on Coder-Coder.com. 该帖子最初发布在Coder-Coder.com上 . If yo ...

  7. Java Web开发API Boy如何进阶?

    导语 | Java Web后台开发基本都离不开Spring生态这一套,Spring框架功能极其强大,会帮忙做许多工作,我们通常只需要在一个函数(包含request和response两个入参)中写处理逻 ...

  8. Java框架JSON-RPC项目demo代码实战 + JAVA WEB配置虚拟目录(转自21天java web开发)

    Java框架JSON-RPC项目demo代码实战 备注  JAVA WEB配置虚拟目录(转自21天java web开发) https://blog.csdn.net/wjxbj/article/det ...

  9. [Java Web整合开发王者归来·刘京华] 1、 Java Web开发

    目录: 1.Web技术简介 2.动态网站与静态网站 3.Java Web开发模式 4.JavaScript简介 1.Web技术简介 PS: 最近还有更凶残的技术,即整个操作系统都是基于Web的,如火狐 ...

  10. 230套java web开发PDF书籍和CHM参考手册资料大全 免费下载

    230套java web开发PDF书籍和CHM参考手册资料大全 免费下载 下载地址:http://yun.baidu.com/s/169jYH 文章来源:HTML5星空http://www.html5 ...

最新文章

  1. [译] MDC-101 Flutter:Material Components(MDC)基础(Flutter)
  2. [XPath] XPath 与 lxml (三)XPath 坐标轴
  3. 彻底搞定C指针-函数名与函数指针[转]
  4. [剑指offer][JAVA]面试题第[29]题[顺时针打印矩阵][数组]
  5. 《Java高级程序设计》期末作业【2】-进度安排
  6. Skyline Web 二次开发- 1.地图显示、Position、AttachEvent
  7. fragstats教程
  8. 【头像变更】自己瞎做一个头像,放真实头像做头像虽然真诚,但是心里实在不想!
  9. 关于 AI 边云协同解决方案的研究与讨论
  10. acer switch 10 linux,【AcerSwitch10E评测】拆开来用的电脑 Acer Switch 10E评测(全文)_Acer Switch 10E_笔记本评测-中关村在线...
  11. win7设置html,Windows 7自动备份设置图解 设置Win7系统备份方式
  12. 华硕固件 mysql_刷华硕固件后的桥接中继教程
  13. 远程办公和分布式协作的区别
  14. 用计算机打出来自天堂的魔鬼抖音,抖音来自天堂的魔鬼卡点视频教程
  15. Dell清除BIOS密码及硬盘锁
  16. vc运行库或.net framework装不上的通用解决方法
  17. ATM取款机详细代码
  18. 【其他】免费主页空间
  19. input file图片上传(使用OSS Javscrtipt 上传到服务器)以及图片裁剪(cropper.js)
  20. 来了!被誉为“世界新七大奇迹”的大兴机场正式投运!它有多牛?你想知道的都在这里!...

热门文章

  1. 合肥师范学院计算机科学与技术专业怎么样,2021年合肥师范学院专业排行榜,哪个专业就业比较好...
  2. MatePad11基于SpaceDesk的屏幕扩展优化
  3. 优思学院|如何评价六西格玛管理应用?优缺点分析
  4. linux镜像 百度云
  5. 5.2 综合案例-继电器控制
  6. c语言程序重命名,如何在C语言编程里面修改源文件名字?
  7. 动物乐园java_利用面向对象、接口编写动物乐园
  8. 计算机通天之路第一季:计算机硬件基础
  9. 【嵌入式学习】单片机最小系统---晶振电路
  10. matlab step函数的用法,matlab中step用法