app接口上传图片(通过转码为Base64格式字符串上传)
2018-03-09 17:59
519 查看
app开发中接口有时会涉及到图片上传,代码如下
接受参数 //上传
String imgName = this.getRequestBase64Img("headImg");
方法 /**
* 上传图片(前台为Base64格式)
* @param fileName 上传图片的属性名
* @return
* @throws Exception
*/
public String getRequestBase64Img(String fileName) throws Exception{
return getRequestBase64File(fileName, Constant.SJYS_IMG);//ROOT_PATH + "/SJYS_IMG/"
}
具体方法 /**
* 上传文件(前台为Base64格式)
* @param fileName 上传文件的名字(前台的属性名称)
* @param filePath 文件保存的目标路径
* @return
* @throws Exception
*/
public String getRequestBase64File(String fileName, String filePath) throws Exception{
//得到前台传递过来的Base64格式的字符串
String fileStr = this.getRequest().getParamValue(fileName);
if (fileStr == null){
return null;
}
if(filePath == null || "".equals(filePath)){
filePath = Constant.XLS_TEMP;//ROOT_PATH + "/uploadTemplates/";
}
//前台生成base64时,是以 ABCDEFWWFE.jpg 这种格式传过来的 .jpg是文件的后缀名
String suffix = fileStr.substring(fileStr.lastIndexOf(".")); //后缀名
fileStr = fileStr.substring(0,fileStr.lastIndexOf(".")); //文件的真正base64内容
//产生的文件名称
String name = getRandomFileName()+suffix;
BASE64Decoder decoder = new BASE64Decoder();
try {
// Base64解码
byte[] b = decoder.decodeBuffer(fileStr);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
// 生成文件
OutputStream out = new FileOutputStream(filePath+name);
out.write(b);
out.flush();
out.close();
return name;
} catch (Exception e) {
return null;
}
}
接受参数 //上传
String imgName = this.getRequestBase64Img("headImg");
方法 /**
* 上传图片(前台为Base64格式)
* @param fileName 上传图片的属性名
* @return
* @throws Exception
*/
public String getRequestBase64Img(String fileName) throws Exception{
return getRequestBase64File(fileName, Constant.SJYS_IMG);//ROOT_PATH + "/SJYS_IMG/"
}
具体方法 /**
* 上传文件(前台为Base64格式)
* @param fileName 上传文件的名字(前台的属性名称)
* @param filePath 文件保存的目标路径
* @return
* @throws Exception
*/
public String getRequestBase64File(String fileName, String filePath) throws Exception{
//得到前台传递过来的Base64格式的字符串
String fileStr = this.getRequest().getParamValue(fileName);
if (fileStr == null){
return null;
}
if(filePath == null || "".equals(filePath)){
filePath = Constant.XLS_TEMP;//ROOT_PATH + "/uploadTemplates/";
}
//前台生成base64时,是以 ABCDEFWWFE.jpg 这种格式传过来的 .jpg是文件的后缀名
String suffix = fileStr.substring(fileStr.lastIndexOf(".")); //后缀名
fileStr = fileStr.substring(0,fileStr.lastIndexOf(".")); //文件的真正base64内容
//产生的文件名称
String name = getRandomFileName()+suffix;
BASE64Decoder decoder = new BASE64Decoder();
try {
// Base64解码
byte[] b = decoder.decodeBuffer(fileStr);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
// 生成文件
OutputStream out = new FileOutputStream(filePath+name);
out.write(b);
out.flush();
out.close();
return name;
} catch (Exception e) {
return null;
}
}
/** * 生成随机名字 */ public String getRandomFileName() { Random r = new Random(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmssSSS"); StringBuffer sb = new StringBuffer(); sb.append(r.nextInt(100)); sb.append(r.nextInt(100)); sb.append("_"); sb.append(sdf.format(new Date())); sb.append("_"); sb.append(r.nextInt(100)); sb.append(r.nextInt(100)); return sb.toString(); }
相关文章推荐
- 校验出生日期,校验身份证格式,校验会员账户:9开头数字,校验手机号码是否合法,判断字符串中的url是否都是图片格式字符串,通过图片url读取图片并将图片转换成base64编码
- App端通过Base64多张图片上传到服务器,并存入数据库数据
- base64字符串转文件,以及ngImgCrop裁剪图片并上传保存到服务器示例
- JavaScript上传图片的方法 判断图片的格式和大小、获取图片的base64编码
- android通过Base64往服务器上传图片和对象
- Android 通过Base64上传图片到服务器
- ajax异步上传图片文件并将其转换为base64格式
- android上传图片到服务器(使用base64字节流的形式通过 AsyncHttpClient框架传输)
- android上传图片到服务器(使用base64字节流的形式通过 AsyncHttpClient框架传输)
- 前端vue传过来的是base64格式(解码变成二进制)的图片怎么做【多图上传】
- android上传图片到服务器(使用base64字节流的形式通过 AsyncHttpClient框架传输)
- Springmvc图片文件的上传以及通过js判断图片格式
- android通过Base64往服务器上传图片和对象
- 图片上传转base64格式传给后台,以及上传图片的展示
- 图片上传通过Bitmap转换成Base64编码然后当做请求参数上传
- 把base64格式图片上传到服务器后保存起来
- Android 通过Base64上传图片到服务器
- APP接口, 图片json格式
- 图片通过压 ;缩 转换成base64上传到服务器
- 通过base64上传图片到服务器并读取图片