Base64实现android端图片上传到server端

Base64实现android端图片上传到server端

大家好,又见面了,我是全栈君。

首先要下载Base64.java文件http://iharder.sourceforge.net/current/java/base64/

将代码复制到project中。

然后上代码:

android端代码:

private void setPicToView(Intent picdata) {
            Bundle extras = picdata.getExtras();
            if (extras != null) {
                 mBitmap = extras.getParcelable(“data”);
                view_images.setImageBitmap(mBitmap);
                
                LogUtil.i(“运行reg”, “运行了吗?”);
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                 //将bitmap一字节流输出 Bitmap.CompressFormat.PNG 压缩格式,100:压缩率。baos:字节流
                mBitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
                try {
                    baos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                byte[] buffer = baos.toByteArray();
                LogUtil.i(“图片大小”, buffer.length+””);
                //将图片的字节流数据加密成base64字符输出
                 photo = Base64.encodeBytes(buffer);
            }
        }

server端代码:

public static void SaveImages(String photo,String filePath){
        String imageName = new IPTimeStamp().getIPTimestamp()+”.png”;
        try {
            //对base64数据进行解码  生成字节数组。
            byte[] photoimg = new BASE64Decoder().decodeBuffer(photo);
            for(int i=0;i<photoimg.length;i++){
                if(photoimg[i]<0){
                    //调整异常数据
                    photoimg[i] += 256;
                }
            }
//            SysUtil.SysOut(“图片的大小:” + photoimg.length);  
            File file = new File(filePath,imageName);  //创建一个目录 往里面写入图片
            if (!file.exists()) {  
                file.createNewFile();                    //file.mkdirs()创建一个目录,file.createNewFile()创建一个文件
            }  
            FileOutputStream out = new FileOutputStream(file);  
            out.write(photoimg);  
            out.flush();  
            out.close();  
        } catch (Exception e) {
            // TODO: handle exception
        }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116574.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月19日 下午3:00
下一篇 2022年1月19日 下午3:00


相关推荐

  • URL转发_免费URL转发

    URL转发_免费URL转发所谓URL转发,是通过服务器的特殊设置,将访问您当前域名的用户引导到您指定的另一个网络地址。  地址转向(也可称“URL转发”)即将一个域名指向到另外一个已存在的站点,英文称为“URLFORWARDING”。域名指向可能这个站点原有的域名或网址是比较复杂难记的。如何设置域名URL转发  1、在左边菜单中点击“域名管理”链接。  2、点选用户曾经注册并将要设置的域名,点击左侧

    2022年10月19日
    4
  • 俄罗斯方块(C语言源代码)

    俄罗斯方块(C语言源代码)include stdio h include windows h include conio h include time h 游戏窗口 defineFrameX 游戏窗口左上角的 X 轴坐标 defineFrameY 游戏窗口左上角的 Y 轴坐标 defineFrame height20 游戏窗口的高度 defineFrame width18 游戏窗口的宽度 定义全局变量 i time h conio h windows h stdio h

    2025年8月29日
    10
  • cxf实现webservice_简单框架

    cxf实现webservice_简单框架原文地址

    2026年2月11日
    5
  • 最简真分数c++

    最简真分数c++最简真分数题目描述给出 n 个正整数 任取两个数分别作为分子和分母组成最简真分数 编程求共有几个这样的组合 时间限制 1000 内存限制 65536 输入第一行是一个正整数 n n lt 600 第二行是 n 个不同的整数 相邻两个整数之间用单个空格隔开 整数大于 1 且小于等于 1000 输出一个整数 即最简真分数组合的个数 样例输入样例输出 17 注 此题为全国青少年软件编程 C 语言 等级考试试卷 三级 备考测试题第二题 include

    2026年3月17日
    2
  • #内存管理的艺术# 之 Nginx slab的实现 — 第一篇“基本布局”

    #内存管理的艺术# 之 Nginx slab的实现 — 第一篇“基本布局”

    2021年9月14日
    61
  • directx11是啥(polite什么意思)

    电脑爱好者朋友通常会在某款游戏最低配置要求以及某些显卡上看到有DirectX字样,一般DirectX有:Direct9.0、Direct10(简称DX9、DX10)以及时下最新的Direct11(简称DX11),很多朋友对于一些游戏中最低要求的DirectX版本很疑惑,也不知道为什么越来越多游戏都需要Direct10以上,甚至Direct11版本要求。那么DX11是什么呢?又代表着什么含…

    2022年4月14日
    81

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号