您的位置:首页 > 移动开发 > Android开发

android上传图片到服务器

2016-10-26 14:52 375 查看
使用okhttp进行上传

在gradle中配置

compile 'com.zhy:okhttputils:2.4.1'

上传图片的主要代码

这个回调中写上传回调的代码

class FileUpdateCallBack implements Callback {

@Override
public void onFailure(Call call, IOException e) {
}

@Override
public void onResponse(Call call, final Response responseR) throws IOException {
}
}


上传的代码

url:服务器路径

params:参数

imagePaths:图片路径,支持多张图片同时上传

public void updateImage(String url,Map<String,String> params,List<String> imagePaths){
final OkHttpClient client = new OkHttpClient();

MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);
//遍历map中所有参数到builder
for (String key : params.keySet()) {
builder.addFormDataPart(key, params.get(key));
}
//遍历paths中所有图片绝对路径到builder,并约定key如“upload”作为后台接受多张图片的key
for (String path : imagePaths) {
builder.addFormDataPart("images", FileUtil.getFileName(path), RequestBody.create(MediaType.parse("image/" + FileUtil.getFileType(path)), new File(path)));
}
//构建请求体
RequestBody requestBody = builder.build();
//构建请求
Request request = new Request.Builder()
.url(url)//地址
.post(requestBody)//添加请求体
.build();
client.newCall(request).enqueue(new FileUpdateCallBack());

}


然后把这个获取文件类型的方法贴上

public static String getFileType(String path){
return path.substring(path.lastIndexOf(".") + 1);
}


最后记得加权限,权限我就不写了哈
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息