最近项目中有个需求是打卡签到功能
要求:人脸拍照 上传服务器
这个功能之前使用@Multipart使用标签@PartMap
Android上传头像或上传文件之Retrofit2 使用@Multipart使用标签@PartMap
这次在项目中使用这个方法的时候 因为还要添加其他的参数 后台那边一直接受不到数据
所以就换了一种上传思路
图片上传之字符串加解密BASE64Encoder
在上传图片之前先把图片的路径拿到 例如
/storage/emulated/0/Documents/Pic_1631063843246.jpg
图片转字符串
/**
* 图片转字符串
*
* @param filePath --->文件路径
* @return
*/
public String getImageStr(String filePath) {
InputStream inputStream = null;
byte[] data = null;
try {
inputStream = new FileInputStream(filePath);
data = new byte[inputStream.available()];
inputStream.read(data);
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
// 加密
BASE64Encoder encoder = new BASE64Encoder();
assert data != null;
return encoder.encode(data);
}
拿到图片解析的字符串后 按照字符串格式传给后台解析就可以了
要和后台同事约定一个图片格式 .jpeg
, .png
, .gif
等等
BASE64Encoder.jar包
下载地址:BASE64Encoder.jar包 下载地址