android上传图片到服务器

本文介绍如何使用OkHttp实现图片上传功能,包括依赖配置、上传代码实现及回调处理。通过示例代码展示了如何构建请求体并发送POST请求,适用于Android应用开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用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);
}


最后记得加权限,权限我就不写了哈


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值