在mysql中通过php存储从android中编码的图像

我一直在尝试将图像存储在mysql数据库中,方法是将它们编码为base64字符串,然后将它们传递给PHP脚本,然后将该字符串存储在blob(我也尝试过文本)字段中.会发生什么是字符串按原样发送到PHP脚本,但是当存储在数据库中时,它将被存储为完全不同的字符串.

我是这样做的:

    Bitmap image = BitmapFactory.decodeFile("/sdcard/photo2.jpg");

    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    image.compress(Bitmap.CompressFormat.PNG, 100, stream);

    byte[] byteImage = stream.toByteArray();

    String s = Base64.encodetoString(byteImage, Base64.NO_WRAP | Base64.URL_SAFE);

然后将字符串’s’传递给PHP脚本(正如我检查过的那样),然后脚本将其插入数据库中.

链接http://diffchecker.com/kKD4w16C包含原始编码字符串(在屏幕左侧)和存储在数据库中的字符串(在屏幕右侧)的方式.

任何想法为什么会发生这种情况以及如何预防?

提前致谢.

解决方法:

你没注意到,你只是削减了约20%的弦?好像您的数据库字段有限制.类似varchar(255)的东西,你尝试存储1500长度的字符串.

http://tinyurl.com/c2e7hru – 见这里我只是复制数据库字段值的末尾,并在“原始”值中找到它.

另外,检查您的编码.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...