一张图片的BASE64码转成二进制,存到sql 中,从sql中读出来再转成base64前后不一致。

问一个问题,一张图片的BASE64码转成二进制,存到sql 中, 图片说明

图片说明是当我从SQL中取出来,再转成BASE64的时候发现结果不一致,这是什么原因?我错在哪里了?

6个回答

这里面最好注明下环境,首先要说下是你用的是什么数据库?存放的二进制数组的字段类型是什么?不同的数据库跟数据类型都有可能不一样。对于Sql Server数据库,存放二进制的数据类型是SqlDbType.Binary,但这个类型有长度限制,最长只到8000。所以二进制长度超过8000的话,存放进去可能被截断。
其次,一般数据库dll组件会有提供相应类型的数据获取方法。如果是SqlDbType.Binary的话,建议是用SqlDataReade对应的GetSqlBinary方法获取SqlBinary对象,再调用SqlBinary对象的valuen属性获取byte[]值,减少出现转码问题。
最后,Photo属性赋值的是BASE64字符串,存进数据库里的本般就是BASE64的二进制,从数据库获取后,直接二进制转成字符串就行了,不用调用Convert.ToBase64String。Convert.ToBase64String的作用是转成BASE64字符串。你代码的转换过程如下
源数据->byte[]->调用ToBase64String->转换后的base64字符串;
存到数据库的过程:转换后的base64字符串->byte[]->数据库;
从数据库读取:数据库->byte[]->调用ToBase64String->二次转换后的base64字符串。
最终取出后相当于转了两次base64码,所以从数据库获取后调用Encoding.Default.GetString()方法转成字符串就行了,不需要调用ToBase64String。

你第一张图没用Base64啊?
也许编码不同?

Photo就是一张图片的base64码。

最后我用myEmployee.Photo = Encoding.UTF8.GetString(imageData);得出了原先的值。

想问您一下怎么将base64存入数据库,数据库怎么设计 .net mvc +_ sqlserver

你这样,用winhex打开相同的两个文件,看看对比一下,少了啥东西完后对应代码去看

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
BASE64码怎样转成二进制?
获得了一个图版的BASE64码,听说要转成二进制输出,才能看到图片的样子,哪位高手写过这方面的example?贴上来帮帮偶~rn …谢谢…
Java 把图片转成base64 / 把base64 转成二进制
1. Java 把图片转成base64 @Test public void method01(){ InputStream in = null; byte[] data = null; try { in = new FileInputStream("G:\\picture\\timg.jpg"); //路径 data = new byte[in.available()...
js将图片转成base64,将base64转成blob和二进制
将图片转成base64的编码格式: function convertImgToBase64(url, callback, outputFormat){ var canvas = document.createElement('CANVAS'), ctx = canvas.getContext('2d'), img = new Image(); img.crossOrigin = ...
base64转成jpg图片
我想把下面的base64转成jpg图片rn/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAB2AFoDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD36iii gAoorlfGXjSz8K2oDgTXcgzHCD+p9BTSbdkB1JIUZNMM8YOC4z9a+f8AU/ib4g1W1khwkEZbJMAI IHoTXKnWr+GXzkvLlHJ+8srA/wA60VJ9WB9WggjI6UtfO+hfFPXtLkRZ5fttvnBSbrj2Yc/nmvZ/ C/i/T/FNoZbVisyAebA33k/xHvUyhKKuxtWOgY7RUROTmnOTnFMqBBRSE4FM3mgCypJGTTqgp8ZO cUAQ6lfw6Zp1xe3DbYoELt9AK+d92peOfEU85BJkfcefliXsPyr0r4w6q1p4ehsUbBu5Pnx3Vef5 4qh4A06Kz8OR3TqEEpLs78U3P2ceZdTalG7F0XwBaadEzPumdxzuHH5VkeIvAMMoDWaLE3U8V6bb 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 S/hsZ754ZB8pGZizMckmuyX7o+lFFeWI/9k=
图片转成base64编码
//UIImage图片转成Base64字符串: UIImage *originImage = [UIImage imageNamed:@"originImage.png"]; NSData *data = UIImageJPEGRepresentation(originImage, 1.0f); NSString *encodedImageStr = [data base64EncodedS
base64转成图片
// base64字符串转化成图片     public static byte[] generateImage(String imgStr) { // 对字节数组字符串进行Base64解码并生成图片         if (imgStr == null) // 图像数据为空             return null; //        try { //            imgStr...
图片base64转成file
图片base64转成file 最近做了一个功能,是个人签名,用户在签名处点击,弹出签名框,用鼠标或手指签完名之后会得到一个base64的图片,因为我们项目图片都是通过oss上传到阿里云服务器的,然后阿里云返回一个url之后再保存到我们自己的服务器,所以这里我就需要将得到的base64转成file,花不多说,直接上代码(原理:先将base64转成blob,再将blob转成file) // ...
base64转成图片的方法
const express = require('express'); const Buffer = require('Buffer'); const fs = require("fs"); const json = require('./aa.json'); var num = 0; for(var i in json) { var data = json[i]; var
将图片转成base64
from service.utils import get_file_data import base64path = r"C:\Users\fengxue\Desktop\xxoo.jpg" data = get_file_data(path) data = base64.b64encode(data)
将base64编码转成图片存到本地
网上的转换方式基本都是下面这种,但我转换后就是损坏。 BASE64Decoder decoder = new BASE64Decoder(); //Base64解码 byte[] b = decoder.decodeBuffer(imgfnPhoto); for (int i = 0; i < b.length; ++i) { if (b[i] < 0) {// ...
base64转成png图片问题
---------------------------rnDebugger Exception Notificationrn---------------------------rnProject etbclient.exe raised exception class EPngInvalidCRC with message 'This "Portable Network Graphics" image is not valid because it contains invalid pieces of data (crc error)'.rn---------------------------rnBreak Continue Help rn---------------------------rn服务端给我传了base64代码 结果我一转成图片就报这个错误。图片大小是15k左右。
本地文件转成Base64控件
可以将本地的文件转成Base64的编码格式,便于文件的传输
文件分段转成base64,江湖救急~
一个视频文件,几M大小。要通过http上传到服务器,转换成base64传输。rnrn目前的问题是,在Android手机里,超过3M左右的文件转base64就会内存溢出。rnrn想到一个解决办法,把文件按512K转成byte,然后再转base64.rnrn最后把base64组合成一个大的string传到服务器端。rnrn各位大神帮忙给个分段的算法,转byte 和base64的都有,就是不知道该如何分段,如何改写getBytes这个方法rn谢谢了!急用~~rnrn[code=java]rn /** rn * 获得指定文件的byte数组 rn */ rn private byte[] getBytes(String filePath) rn byte[] buffer = null; rn try rn File file = new File(filePath); rn FileInputStream fis = new FileInputStream(file); rn ByteArrayOutputStream bos = new ByteArrayOutputStream(1000); rn byte[] b = new byte[1000]; rn int n; rn while ((n = fis.read(b)) != -1) rn bos.write(b, 0, n); rn rn fis.close(); rn bos.close(); rn buffer = bos.toByteArray(); rn catch (FileNotFoundException e) rn e.printStackTrace(); rn catch (IOException e) rn e.printStackTrace(); rn rn return buffer; rn [/code]
VB实现图片转BASE64或BASE64转成图片
VB6实现图片和BASE64之间的转换,巧用XML,通用性好,可以用于将图片远程上传服务器,保存数据库,或才接收服务器图片数据后,转换成图片本地显示。
将文件转成编码base64码
选择图片:   "file" id="img">      "start">开始转换          预览:"imgShow" src="" alt="">      Base64数据:   "conte">   'cpData'>复制"succ">   "len">数据长度:          var img = document.getElementById('img
js-将在线图片转成Base64的图片
convertImgToBase64:function(url, outputFormat,callback){ var canvas = document.createElement('CANVAS'), ctx = canvas.getContext('2d'), img = new Image(); img.crossOrigin = 'Anonymous'; ...
java的md5,base64转成c#的md5,base64
[code=java]public static String MD5(String plainText, String charset) throws Exception MessageDigest md = MessageDigest.getInstance("MD5"); md.update(plainText.getBytes(charset)); byte b[] = md.digest(); int i; StringBuffer buf = new StringBuffer(""); for (int offset = 0; offset < b.length; offset++) i = b[offset]; if (i < 0) i += 256; if (i < 16) buf.append("0"); buf.append(Integer.toHexString(i)); return buf.toString(); /** * base64编码 */ public static String base64(String str, String charset) throws Exception return (new sun.misc.BASE64Encoder()).encode(str.getBytes(charset)); [/code]rnrnrnrn还有一个在java版。不懂java,帮忙转一下。rnhttp://bbs.csdn.net/topics/390600955
base64转成byte[],转成16进制打印
package test; import java.io.IOException; import java.util.Arrays; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class base64byte { public static void main(String a...
将base64编码转成图片存到本地为什么都是损坏的?
如题。rn[code=java]rnBASE64Decoder decoder = new BASE64Decoder();rn//Base64解码rnbyte[] b = decoder.decodeBuffer(imgfnPhoto);rnfor (int i = 0; i < b.length; ++i) rn if (b[i] < 0) // 调整异常数据rn b[i] += 256;rn rnrn//生成jpg图片rnString filename = this.createGUIDService.getGUID()+".jpg";rnOutputStream out = new FileOutputStream(request.getRealPath("fsweb/workData/web") + "//" + filename);rnout.write(b);rnout.flush();rnout.close();rn[/code]rn网上找的代码全是这段,但是我用了之后生成的图片全是损坏的,实在不明白是哪里出了问题。rnrn求大牛解答[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/15.gif][/img]rnrn在线等。
Swift base64转成图片以及字符串,以及图片和字符串转成 base64的方法
图片转成 base64: let image : UIImage = UIImage(named:"test.png")! let imageData = UIImagePNGRepresentation(image) let base64String = imageData!.base64EncodedStringWithOptions(NSDataBase64Encodin
Base64 文件流转成视频 图片 语音方法
根据字符流、文件类型 保存文件为视频 图片语音等文件。
java将图片转成Base64编码
一款转码示例,可以直接运行。java将图片转成Base64编码。
java读取base64编码字符串并转成图片
    在网络中传输的图片,通常都是使用base64格式文件传输,本次读取的是保存在本地文件中的base64字符串,现在将其解析为原始图片。import java.io.*; import sun.misc.BASE64Decoder; public class DailyCode { public static void main(String[] args) { St...
cefinitialize 崩溃
求大神帮忙
图片 音频等文件转成base64编码
图片 音频等文件转成base64编码
图片/视频上传转成base64/blob格式
项目中经常会用到上传图片/视频的地方,比如上传头像,上传商品图片、证件图片、小视频等等,我们需要将图片转为 base64后再提交给后台,然后后台再将base64转成图片后进行保存,这里是基于vue+vux来写的,H5实现的基本逻辑也是一样的,样式部分省略。 一、图片上传 1、html部分 &amp;lt;template&amp;gt; &amp;lt;div class=&quot;index&quot;&amp;gt; &amp;lt...
图片转成Base64字符串,供<img/>使用
将图片转成Base64字符串。供前端Html <img/> 使用 将转换结果替换至src的值就OK了
base64解码转成图片并上传
在Controller中   @ResponseBody @RequestMapping(value = &quot;/avatarUploadByBase64.json&quot;, method = RequestMethod.POST) @ApiOperation(value = &quot;头像上传&quot;, notes = &quot;头像上传&quot;, position = 5) public Response...
node.js把前台传来的base64码转成图片存放
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...
Java 将图片转成base64,传到前台展示
1.String imgStr = &quot;&quot;; try { File file = new File(&quot;G:/Image/aa.jpg&quot;); FileInputStream fis = new FileInputStream(file); byte[] buffer = new byte[(int) file.length()]; int offset = 0; ...
文本文件转成二进制数据流存到SQL库中出错
TFileStream * DataStream;rn OpenDialog1->Execute();rn DataStream=new TFileStream(OpenDialog1->FileName,fmOpenWrite || fmCreate);rn DataStream->Position=0;rn TBlobField * pField=(TBlobField *)ADOQuery2-> FieldByName("frfdata");rn ADOQuery2->Open();rn ADOQuery2->Append();rn ADOQuery2-> Edit();rn pField->SaveToStream(DataStream);rn delete DataStream;rn ADOQuery2-> Post(); rn//frfdata (binary) 存储时提示 Invalid class typecastrn不知道是不是因为没有转为二进制~~如果是的话该怎么写
将文件转成base64 字符串
[code=&quot;java&quot;] package com.xxx.test; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; pub...
base64码图片转码
base64码,图片转码
图片转base64码
推荐一个图片转base64码工具 工具链接
图片转换成base64码
为了方便数据的交互,将获得图片转换成base64的码。
JDBC方式将数据库中Blob类型转成base64图片
 sql2 = &quot;select zp from T_EXAM_PROCESS  where id='&quot;+id+&quot;'  and anytime like '&quot;+anytime+&quot;%'&quot;;                 listZp2 = oracleUtil.searchSql2(sql2,newdburl,newdbname,newdbpassword,keyList2);   //参数配...
js中 文件、图片二进制和base64的互转
直接看代码:/** * 网络图像文件转Base64 */ function getBase64Image(img) { var canvas = document.createElement("canvas"); canvas.width = img.width; canvas.height = img.height; var ctx = canvas.getC
.netC#中图片与BASE64码互相转换
.netC#中图片与BASE64码互相转换
图片转成二进制
图片转成二进制的方法
将图片转成二进制并生成Base64编码,在网页中可以通过url查看图片
 String root=SystemConfig.getValue(&quot;file.root&quot;);// 文件根路径JSONObject obj = new JSONObject(); String path = root + &quot;/&quot; + url;// 文件路径 File file = new File(path); FileInputStream in = new FileInputStream(...
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件