java和asp.net 分别将同一张图片转换成base64位后,大小不一样,无法通用?

同一张图片转换成base64后,存入txt文档。java转换成的txt文档有77.7K,asp.net转换成的txt文档有1.57MB,图片本身大小为1.18MB。是哪里出来问题啊,而且java转换成的base64位数据,在asp.et中无法还原成图片。
java: 图片转换成base64
public static String getImageStr(String imgFilePath) {
byte[] data = null;

// 读取图片字节数组
try {
InputStream in = new FileInputStream(imgFilePath);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}

// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
// 返回Base64编码过的字节数组字符串
return encoder.encode(data);
}
asp.net base64转换成图片
string dt = DateTime.Now.ToString("yyMMddhhmmss");
byte[] bytes = Convert.FromBase64String(input);
System.IO.FileStream outputStream = new System.IO.FileStream(Server.MapPath("~/ImagesL/") + dt + ".jpg", System.IO.FileMode.Create);
for (int i = 0; i < bytes.Length; ++i)
{
if (bytes[i] < 0)
{// 调整异常数据
bytes[i] = Convert.ToByte(Convert.ToInt32(bytes[i])+256);
}
}
outputStream.Write(bytes, 0, bytes.Length);
outputStream.Close();
intput是接收到的base64字符流

要使用Oracle数据库实例,有两种方式来实现。
一个是使用CLOB字段Base64编码后的图像存储,WEB应用访问字段(String对象),使用Base64编码,然后输出。

有一个二进制大对象字段使用的Blob,直接存储对象字节流可以是任何对象,如图片,视频,文档等,然后WEB应用越来越重最初建为一个字节Blob对象流对象。
但无论哪种方式在非洲的业务发展是真的有必要在此情况下,绝对不推荐,因为数据是更大的访问数据库的性能开销更高的应用效率会比较低后续系统的SQL脚本不能只通过开展,由Oracle DMP地的。因为无论是长,CLOB或BLOB,不是一个简单的SQL插入,推荐的做法是存储文件数据库VARCHAR2领域的WEB容器相对路径(图片,视频,文档等),WEB应用程序只能通过需要访问链接的对象的路径。追问

?我现在是java程序准确说是安卓程序将图片转换成base64的字符流后存入txt文档中,而后asp.net程序从txt文档中读取base64位字符流在还原成图片。跟Oracle有神马关系?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-08-17
Java的byte是-127到+127,而C#的是[0,255]本回答被提问者采纳