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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm如何编译程序_xc8编译器

    pycharm如何编译程序_xc8编译器现在轮到PyCharmPyCharm安装教程PyCharm是一款功能强大的Python编辑器,具有跨平台性,鉴于目前最新版PyCharm使用教程较少,为了节约时间,来介绍一下PyCharm在Windows下是如何安装的。第一步:进入PyCharm官网这是PyCharm的下载地址:http://www.jetbrains.com/pycharm/download/#section=windows进入该网站后,我们会看到如下界面:professional表示专业版,co

    2022年8月27日
  • sftp与ssh端口分离_设置服务器端口监听

    sftp与ssh端口分离_设置服务器端口监听sftp,是ssh的功能之一,也就是说是使用SSH协议来传输文件的。OS系统内开启ssh服务和sftp服务都是通过/usr/sbin/sshd这个后台程序监听22端口,而sftp服务作为一个子服务,是通过/etc/ssh/sshd_config配置文件中的Subsystem实现的,如果没有配置Subsystem参数,则系统是不能进行sftp访问的。具体操作(本验证在RedHatLinux7.9上进行):一、复制SSH相关文件,作为sftp的配置文件1、拷贝/usr/lib/systemd/sys

    2022年9月14日
  • java多线程编程实例

    java多线程编程实例        这篇文章主要介绍了java多线程编程实例,分享了几则多线程的实例代码,具有一定参考价值,加深多线程编程的理解还是很有帮助的,需要的朋友可以参考下。1.相关知识:Java多线程程序设计到的知识:(1)对同一个数量进行操作(2)对同一个对象进行操作(3)回调方法使用(4)线程同步,死锁问题(5)线程通信等等2.示例2.1三个售票窗口同时出售20张票程序分析:    (1)票数要使用同一…

    2022年6月2日
  • 2020年前端面试题及答案_结构化面试题库及答案

    2020年前端面试题及答案_结构化面试题库及答案1、javascript基本数据类型?string、number、null、underfined、booleanobject是所有对象的父对象。2、浅谈javascript中变量和函数声明的提升?变量和函数声明的提升会被提升到最顶部去执行;函数的提升高于变量的提升;如果在函数内部用var声明了与外部相同的变量,则不向下寻找;匿名函数不会被提升;不同块中互不影响。3、什么是闭包?闭包有什么特性?闭包就是能够读取其他函数内部变量的函数。闭包的特性:函数内部可以嵌套函数;内部函数可以直接

    2022年8月27日
  • webservice发送短信本地部署可以但是服务器部署发送短信息中文乱码

    webservice发送短信本地部署可以但是服务器部署发送短信息中文乱码

    2020年11月9日
  • ie兼容性视图怎么设置_电脑找不到兼容性视图

    ie兼容性视图怎么设置_电脑找不到兼容性视图许多用户在升级操作系统之后,里面自带的ie浏览器也会跟着一起升级,然而有些网站可能需要使用低版本的ie浏览器才可以打开,该怎么办呢,其实我们只要设置ie兼容性视图模式就可以了,不过很多用户可能还不知道ie兼容性视图设置在哪,为此,小编这就告诉大家ie兼容性视图的详细设置方法。步骤阅读工具/原料IE浏览器方法/步骤11、在Windows10系统桌面,我们依次点击“开始/Windows附件/Inter…

    2022年9月8日

发表回复

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

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