前一段时间做了一个小项目,把一张图片传到服务器端,功能很简单,服务器端用.net MVC4实现的,客户端是winform程序。

昨天领导说客户端要移植一班Android程序,就花了点时间做了一个,传的时候发现java转出来的字符串跟C#的不一样,还原不了。

因为Base64是一个统一的标准,所以按道理应该是一样的才对。

期初用的是sun.misc.BASE64Encoder类,之后换了java.util.Base64.Encoder类就一致了。

问题解决,贴一下代码

C#:

 1  public static string File2String(string path)
 2         {
 3             if (string.IsNullOrEmpty(path))
 4             {
 5                 throw new Exception("文件路径不能为空!");
 6             }
 7             try
 8             {
 9                 using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
10                 {
11                     byte[] buffByte = new byte[fs.Length];
12                     fs.Read(buffByte, 0, (int)fs.Length);
13                     string str = Convert.ToBase64String(buffByte);
14                     return str;
15                 }
16             }
17             catch (DirectoryNotFoundException ex)
18             {
19                 throw ex;
20             }
21             catch (Exception ex)
22             {
23                 throw ex;
24             }
25         }
26
27         public static bool String2file(string inputString, string path, string filename)
28         {
29             if (string.IsNullOrEmpty(inputString))
30             {
31                 throw new Exception("输入数据不能为空");
32             }
33             if (string.IsNullOrEmpty(path))
34             {
35                 throw new Exception("路径不能为空!");
36             }
37             if (string.IsNullOrEmpty(filename))
38             {
39                 throw new Exception("文件名不能为空!");
40             }
41             try
42             {
43                 byte[] buff = Convert.FromBase64String(inputString);
44                 FileInfo fi = new FileInfo(path + filename);
45                 using (FileStream fs2 = fi.OpenWrite())
46                 {
47                     fs2.Write(buff, 0, buff.Length);
48                     return true;
49                 }
50             }
51             catch (Exception ex)
52             {
53                 throw ex;
54             }
55         }

java:

 1 public static void main(String[] args) {
 2         String s = Getstr();
 3         if(GenerateImage(s))
 4             System.out.println("t");
 5         else
 6             System.out.println("f");
 7     }
 8
 9     private static String Getstr() {
10         String imgFile = "d://test.jpg";
11         InputStream in = null;
12         byte[] data = null;
13
14         try {
15             in = new FileInputStream(imgFile);
16             data = new byte[in.available()];
17             in.read(data);
18             in.close();
19         } catch (IOException e) {
20             e.printStackTrace();
21         }
22
23         Base64.Encoder d = Base64.getEncoder();
24         return d.encodeToString(data);
25     }
26
27     //    base64字符串转化成图片
28     public static boolean GenerateImage(String imgStr) {
29         if (imgStr == null)
30             return false;
31         Base64.Decoder decoder = Base64.getDecoder();
32         try {
33
34             byte[] b = decoder.decode(imgStr);
35             for (int i = 0; i < b.length; ++i) {
36                 if (b[i] < 0) {
37                     b[i] += 256;
38                 }
39             }
40
41             String imgFilePath = "d://new.jpg";
42             OutputStream out = new FileOutputStream(imgFilePath);
43             out.write(b);
44             out.flush();
45             out.close();
46             return true;
47         } catch (Exception e) {
48             return false;
49         }
50     }

ps:import java.util.Base64,这句要在java1.8里才有,如果是1.7或之前版本,可以试试Apache下面的一个Base64的包。

转载于:https://www.cnblogs.com/imoonstal/p/4292567.html

基于Base64的图片转字符串-java和C#互通问题相关推荐

  1. php如何解码图片,php基于base64解码图片与加密图片还原实例_PHP

    本文实例讲述了php基于base64解码图片与加密图片还原的实现方法.分享给大家供大家参考.具体实现方法如下: 本例中$data是一段经过base64编码的图片.具体代码如下: 代码如下: //文件名 ...

  2. 如何将原图和json融合_用 base64 进行图片和字符串互转,并保存至 json

    介绍 图片在网络上,通常以二进制文件传输,但是可不可以用纯文本传输图片呢?答案是肯定的. 本文就简要介绍一下 Python 的 base64 库.它可以将图片转换成字符串,也可以从字符串"变 ...

  3. java—— 图片转字符串、字符串转图片、java Base64用法

    方法一: 不太推荐使用 sun.misc.BASE64Decoder; sun.misc.BASE64Encoder; /*** 字符串转图片* @param imgStr 图片字符串* @param ...

  4. Java接受前端的base64,转换失败。base64转图片互相转换

    spring boot前后端vue,base64转图片互相转换 vue就不展示了,下边只展示Java中互相转换的例子. Java实现图片转化成base64字符串 //图片转化成base64字符串 pu ...

  5. 用js实现基于Base64的数据或者图片的编码与解码

    背景: 公司需要对接第三方的合作商,需要跳转至对方的网站,使用get请求访问对方链接直接跳转,get请求会直接暴露登陆的用户名和密码,我们采用base64编码,对用户信息进行保护. 常用的base64 ...

  6. java 字符串转成图片_java 转换图片为字符串,将字符串转换成图片显示

    java 转换图片为字符串,将字符串转换成图片显示, 该方法只适用于比较小的图片传输,50K以内: try{ // 将图片转换成字符串 File imgFile = new File("f: ...

  7. nmmqq.php?/lspc.html,html中的图片直接使用base64编码后的字符串代替详解

    网页中的图片是使用base64编码后的字符串代替了,这个叫做Data URI scheme,下面有个不错的示例,大家可以参考下 最近来了一个网页,里面有图片,但是却没有引用外部的图片资源,很好奇.查看 ...

  8. linux jpg图片转base64,html中的图片直接使用base64编码后的字符串代替

    最近来了一个网页,里面有图片,但是却没有引用外部的图片资源,很好奇.查看代码后发现,里面的图片是使用base64编码后的字符串代替了,这个叫做Data URI scheme. Data URI sch ...

  9. html5 sfbapa cn,html中的图片直接使用base64编码后的字符串代替

    html中的图片直接使用base64编码后的字符串代替 发布时间:2020-03-03 来源:未知 点击: 次 最近来了一个网页,里面有图片,但是却没有引用外部的图片资源,很好奇.查看代码后发现,里面 ...

最新文章

  1. Docker入门六部曲——基本引导
  2. 蓝桥杯_算法训练_表达式计算
  3. volunteer research
  4. [转载]非常量引用的初始值必须为左值的问题
  5. 抽取python 标准库页面生成 mobi 离线文件
  6. 腾讯云首次公开边缘计算网络开源平台,拥抱5G与万物互联
  7. 自然语言处理与中文分词的难点总结--学习笔记
  8. Java 学习笔记(121208)
  9. php中声明一个函数,php学习笔记之 函数声明
  10. nginx限制请求之一:(ngx_http_limit_conn_module)模块
  11. 基于Kubernetes集群部署skyDNS服务
  12. jmeter压力测试教程
  13. ArcGIS土壤稳定性评估(附练习数据下载)
  14. c语言partition头文件,c – dxvahd.h中的#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)何时成为true头文件...
  15. Linux下Firefox安装flash操作
  16. IDEA 顶部导航栏(Main Menu)不见了怎么办
  17. SMART硬盘检测参数详解
  18. 公关,从讲好一个故事开始
  19. 关于gb2312编码的xml解析
  20. 海康摄像头音频编码获取

热门文章

  1. python numpy安装-Python--Numpy安装
  2. python对excel某一列求和-96、python操作excel求和
  3. 小学生python入门-周边 | 小学生都开始学Python了,你还在等什么?
  4. python进阶书籍推荐-豆瓣评分9.4!年度最值得推荐的Python进阶书
  5. python不想学了-嫌Python太慢但又不想学C/C++?来了解下JIT技术
  6. php和python对比-PHP和Python性能比较:放弃PHP改用Python
  7. python教程txt免费下载-python编程从入门到实践PDF电子书教程免费下载
  8. python电脑版微信-python如何实现远程控制电脑(结合微信)
  9. 济南python工资一般多少钱-济南python编程培训班价格
  10. python用于什么-python用于什么