`
苗振忠
  • 浏览: 59540 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android okHttp上传单张或多张照片

 
阅读更多

1.利用LruCache、DiskLruCache实现图片的加载,避免OOM
2.引用开源库https://github.com/pengjianbo/GalleryFinal,实现从相册中选择图片、拍照进而进行上传,图片上传可以


private static finalMediaTypeMEDIA_TYPE_PNG= MediaType.parse("image/png");

private final OkHttpClient client = new OkHttpClient();
private void uploadImg() {

        // mImgUrls为存放图片的url集合
        MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);
        for (int i = 0; i <mImgUrls.size() ; i++) {
            File f=new File(mImgUrls.get(i));
            if (f!=null) {
                builder.addFormDataPart("img", f.getName(), RequestBody.create(MEDIA_TYPE_PNG, f));
            }
        }
           //添加其它信息
//        builder.addFormDataPart("time",takePicTime);
//        builder.addFormDataPart("mapX", SharedInfoUtils.getLongitude());
//        builder.addFormDataPart("mapY",SharedInfoUtils.getLatitude());
//        builder.addFormDataPart("name",SharedInfoUtils.getUserName());


        MultipartBody requestBody = builder.build();
        //构建请求
        Request request = new Request.Builder()
                .url(Constant.BASE_URL)//地址
                .post(requestBody)//添加请求体
                .build();

        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                
                System.out.println("上传失败:e.getLocalizedMessage() = " + e.getLocalizedMessage());
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                
                System.out.println("上传照片成功:response = " + response.body().string());
                ToastCustom.makeText(PictureListActivity.this, "上传成功", Toast.LENGTH_LONG).show();
              

            }
        });

    }
分享到:
评论

相关推荐

    Volley-XUtils-OkHttp三种方式实现单张多张图片上传

    本篇文章将深入探讨如何利用Volley、XUtils和OkHttp这三种流行的网络库来实现单张或多张图片的上传。下面我们将逐一介绍每种方法的关键步骤和注意事项。 ### Volley 图片上传 Volley是Google推出的网络请求库,以...

    OKhttp上传图片

    在Android开发中,图片上传是一项常见的任务,...总的来说,使用OKHttp上传图片涉及对网络请求的理解、RequestBody的构造以及与服务器端的交互。理解这些知识点能帮助开发者在Android项目中有效地实现图片上传功能。

    android上传多张图片到服务器

    在Android应用开发中,将多张图片上传到服务器是一项常见的任务,特别是在社交、电商或分享类应用中。本文将详细讲解如何实现这一功能,并重点讨论图片压缩上传的策略,以减少网络传输的数据量,提高用户体验。 一...

    Android图片上传队列Service

    在Android应用开发中,图片上传是一项常见的功能,尤其是在社交、媒体分享或云存储类的应用中。为了实现这一功能,开发者通常需要设计一个高效且可靠的图片上传队列Service。本篇文章将详细探讨如何创建一个名为...

    stuido项目,单张图片头像拍照、相册选择上传

    "stuido项目,单张图片头像拍照、相册选择上传"是一个针对这个需求的具体实现,旨在为用户提供简便的方式,从相机或者相册选取照片,并进行适当的编辑,如放大、缩小和移动裁剪,最终上传作为个人头像。 首先,我们...

    Volley上传图片(单多图)

    本篇将重点讲解如何利用Volley库来实现图片的上传功能,包括单张图片和多张图片的上传。 首先,我们需要了解Volley中的`RequestQueue`是处理所有网络请求的核心组件。创建一个`RequestQueue`实例后,我们可以向其...

    Kotlin RecyclerView使用,浏览相册、选择图片上传,下载文件,文件选择器

    然后,我们可以在`RecyclerView`中显示这些图片,用户可以选择单个或多个图片。多选可以通过设置一个`CheckBox`在每个列表项中实现,同时配合` SparseBooleanArray`来跟踪已选中的项。 "选择图片上传"涉及到了图片...

    Android Retrofit实现多图片/文件、图文上传功能

    `@Multipart`注解用于表明请求体是一个多部分的,通常用于上传文件或图片。而`@Part`注解则用于标记每一个单独的请求部分。例如,每一张图片或文件都需要一个单独的`@Part`注解来指定其内容。 除了`@Part`,...

    仿微信图片上传,多张图片选择

    在Android应用开发中,"仿微信图片上传,多张图片选择"是一个常见的需求,尤其是在社交应用中。这个功能涉及到用户界面的设计、图片选取机制、图片处理以及上传逻辑等多个环节。以下将详细介绍这些知识点: 1. **多...

    仿微信选择多张图片,上传,源码

    在Android开发中,实现“仿微信选择多张图片并上传”的功能是一项常见的需求。这个功能涉及到用户从手机图库中选取图片,预览所选图片,以及上传这些图片到服务器。下面将详细介绍这一过程涉及的关键知识点。 1. ...

    仿微信朋友圈上传图片

    这类库通常提供一个用户友好的界面,让用户能够从相册中挑选多张图片。例如,`IICE Cream Multiple Images Selector` 是一个流行的选择器,它允许用户通过一个简洁的界面批量选择图片,并且支持预览和裁剪功能。集成...

    仿微信图片上传 +图库选择9张图+ 多单评价

    要实现一次选择多张图片,通常我们需要自定义一个图片选择器或者使用第三方库,如`Glyde`, `Picasso`, 或 `Android-Image-Multi-Choose`等。这些库提供了选择多张图片并显示预览的功能,同时可以设置选择数量限制,...

    weixinps_android源码_

    - **图片预览模块**:使用`ViewPager`展示多张图片,`ImageView`显示单张图片,可能结合`GestureDetector`处理滑动事件。 - **图片裁剪模块**:可能使用`Matrix`进行图像变换,结合`CropView`实现自定义裁剪框。 - *...

    图片多选上传

    这个功能涉及到用户能够从手机相册中选择多张图片,甚至可以通过相机拍摄新图片并立即上传。实现这一功能需要理解Android的多媒体文件访问、图片处理、相机API以及网络上传等技术。 首先,我们要关注的是如何实现...

    仿微信图片上传效果

    1. **图片选择器**:微信的图片上传功能允许用户从手机相册中选择多张图片。在Android中,我们可以使用`Intent`来启动系统相册,让用户挑选图片。`Intent.ACTION_PICK`可以打开图库应用,返回选定图片的URI。同时,...

    new_workspace-master.zip

    从描述来看,这个项目的核心功能是提供全方位的图库选择支持,不仅限于选择单张图片,还支持多图选择,并且包含了拍照功能以及多文件上传的能力。这些都是移动应用中常见的用户交互需求,特别是对于社交、分享或者...

    FlickrRecent:从 flickr 的 API 获取 100 张最新照片的 Android 应用程序

    标题"FlickrRecent"是一款基于Android平台的应用程序,其主要功能是从知名的图片分享网站Flickr的API获取并展示最新的100张照片。这款应用利用了网络编程和图像处理技术,为用户提供了便捷的方式去浏览Flickr上的...

    AsyncHttpClient

    对于上传图片的需求,AsyncHttpClient提供了一套完整的解决方案,无论是单张还是多张图片,都能轻松应对。通常,开发者需要先将图片转换为字节数组或Base64编码,然后作为请求体的一部分发送到服务器。 在使用...

    android-pets-shelter

    - 用户可能可以上传宠物照片,项目可能使用**Intent**选择图片或者集成**ImagePicker**库。 8. **用户反馈和评分**: - 可能有集成Google Play服务,实现用户对宠物的评价和反馈功能。 9. **UI动画**: - 使用...

    image-search:一个从Unsplash API加载图像的Android应用

    6. **用户界面(UI)设计**:应用的UI可能遵循Material Design指南,使用Android提供的布局和控件,如CardView展示每张图片,SearchView处理搜索请求。 7. **异步编程与生命周期管理**:由于网络请求是耗时操作,应...

Global site tag (gtag.js) - Google Analytics