Android中头像上传的另类方法——字符串上传
来源:互联网 发布:微交易系统源码破解版 编辑:程序博客网 时间:2024/05/21 20:28
1、头像上传
头像上传功能,一般我们会使用文件的输入输出流上传。但是在Android开发中,如果我们的某一个应用,不会经常使用到文件上传这样的功能,写很多与文件上传和下载有关的代码,似乎有些不太划算,那么,我们可不可以将文件转换为字符串,然后再进行上传呢?答案是可以的,笔者将这种方法使用在了本人的项目中,非常成功,减轻了大量的代码工作量,简化了逻辑。
2、背景说明
在开始提出这个需求的时候,笔者本身也是想着使用文件的上传功能,不过在项目中使用了Volley这个框架,它本身并不支持文件的上传,这就很坑爹了。Volley官方的文档中说,不推荐使用volley上传较大的数据。那么,笔者就在想,一个头像应该算不上什么大的文件了吧?于是,这样的一个想法就出来了:将文件转换为字符串,然后作为参数进行上传。
3、保存图片
这里有一个保存图片的方法,如下:
/** * 保存图片 * @param bitmap * @throws IOException */ public static void saveBitmap(Bitmap bitmap) throws IOException{ mImageFile = new File(Environment.getExternalStorageDirectory() + "/temp.png"); FileOutputStream out; try{ out = new FileOutputStream(mImageFile); if(bitmap.compress(Bitmap.CompressFormat.PNG, 70, out)){ out.flush(); out.close(); } } catch (FileNotFoundException e){ e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); } }
4、转换图片
我们的目的是将图片转换为字符串,代码如下:
/** * 图片文件转换为指定编码的字符串 * * @param imgFile 图片文件 */ public static String file2String(File imgFile) { InputStream in = null; byte[] data = null; //读取图片字节数组 try{ in = new FileInputStream(imgFile); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e){ e.printStackTrace(); } //对字节数组Base64编码 BASE64Encoder encoder = new BASE64Encoder(); String result = encoder.encode(data); return result;//返回Base64编码过的字节数组字符串 }
5、头像上传
这里就不提供详细的代码了,上面的代码已经是从笔者真实的项目中抽出的。这里仅仅提供一个思路吧,可以将上面的字符串,当作参数与其它字符串拼接在一起,作为参数传递给服务器,然后又服务器解析,再进行转换就可以得到真实的图片数据,转换为图片数据。
0 0
- Android中头像上传的另类方法——字符串上传
- android——本地相机上传头像
- android头像上传功能
- android上传头像
- android 上传头像
- 转:Android上传头像
- android 上传头像
- android 选择头像上传
- Android 上传头像
- Android头像上传
- android裁剪头像上传
- Android模拟上传头像
- android 上传头像
- android头像上传
- Android上传头像功能
- Android头像--拍照上传
- Android之头像上传
- Android更换头像上传
- 指针趣谈
- 黑马程序员-C语言学习日记二之位运算符小结
- spark发展与未来
- Your account already has a valid iOS distribution certificate from same machine
- 对于mkdir -p 的理解
- Android中头像上传的另类方法——字符串上传
- ios开发 --- CSR文件使用--
- 虚拟机简介
- 发布mvc报错:403.14-Forbidden Web 服务器被配置为不列出此目录的内容
- 编程修养
- qsort函数应用大全
- 在Mac上安装gradle
- curl: <35> Unknown SSL protocol error in connection to developer.apple.com:443
- java中 == 、 equal和instanceof 的区别