android 图片转String上传服务器后不能正常查看

查看:212
本文介绍了android 图片转String上传服务器后不能正常查看的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

请教各位朋友,我的android客户端通过将图片转换成string,上传服务器后不能正常打开图片,
上传的图片下载下来通过文本框能够显示转换过后的string

服务器显示如下

下面是我的img转换String代码

public static String getImageString(String imgFilePath){
        String imageString = null;
        Bitmap mBitmap=BitmapFactory.decodeFile(imgFilePath);
            if(mBitmap!=null){
               Matrix matrix = new Matrix();
                  int mWidth=mBitmap.getWidth();
                  int mHeight=mBitmap.getHeight();
                  float scaleWidth=(float)150/mWidth;
                  float scaleHeight=(float)150/mHeight;
                  Log.i("scale", scaleWidth+"++++++++++++"+scaleHeight);
                  matrix.postScale(scaleWidth, scaleHeight);
             Bitmap newBitmap=Bitmap.createBitmap(mBitmap, 0, 0, mBitmap.getWidth(), mBitmap.getHeight(), matrix, true);
                
            ByteArrayOutputStream out=new ByteArrayOutputStream();
            newBitmap.compress(CompressFormat.JPEG, 100, out);
            byte []bytes=out.toByteArray();
            imageString=Base64.encodeToString(bytes, Base64.DEFAULT);
            System.out.println(imageString);
            }
            return imageString;
       }

解决方案

那得看你后台怎么处理的啊,前端你将字节流通过BASE64加密,那么后台获得到的字符串应该通过BASE64解密,后重新输出文件流,创建文件吧。话说为什么要这么复杂呢,直接文件流传输不就行了。网页无法显示你的BASE64加密的字符串。图片的base64是需要带头部数据,否则没法用比如data:image/png;
base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHhJREFUeNo8zjsOxCAMBFB/ KEAUFFR0Cbng3nQPw68ArZdAlOZppPFIBhH5EAB8b+Tlt9MYQ6i1BuqFaq1CKSVcxZ2Acs6406KUgpt5/ LCKuVgz5BDCSb13ZO99ZOdcZGvt4mJjzMVKqcha68iIePB86GAiOv8CDADlIUQBs7MD3wAAAABJRU5ErkJggg%3D%3D。

你的字符串应该只是后面base64的字符串而已,所以无法显示出来。具体还得看你们前后台怎么约定的。

这篇关于android 图片转String上传服务器后不能正常查看的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆