android多文件上传,java服务端接收

Android多文件上传,java服务端接收

1、Android端

代码:

String uploadUrl = "http://xxx/uploadFiles";//上传的接口地址
List filePaths = "";//上传的Android本地文件地址集合
// Android 4.0 之后不能在主线程中请求HTTP请求
new Thread(new Runnable() {
    @Override
    public void run() {
        uploadFiles(uploadUrl, filePaths);
    }
}).start();

/**
     * 多文件上传
     * @param uploadUrl 文件上传接口地址
     * @param filePaths 上传的文件路径集合
     * @return
     */
    public void uploadFiles(String uploadUrl, List filePaths) {
        MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);
        for (int i = 0; i < filePaths.size(); i++) { //对文件进行遍历
            String fname = filePaths.get(i);
            File tempfile = new File(fname);
            //根据文件的后缀名,获得文件类型
            builder.setType(MultipartBody.FORM)
                    .addFormDataPart("id",id)// 其他参数信息
                    .addFormDataPart( //给Builder添加上传的文件
                            "files",  //请求的名字
                            tempfile.getName(), //文件的文字,服务器端用来解析的
                            RequestBody.create(MediaType.parse("multipart/form-data"), tempfile)//创建RequestBody,把上传的文件放入
                    );
        }
        MultipartBody requestBody = builder.build();
        Request request = new Request.Builder()
                .url(uploadUrl)
                .post(requestBody)
                .build();
        OkHttpClient client = new OkHttpClient.Builder()
                .connectTimeout(10000, TimeUnit.SECONDS)
                .readTimeout(10000, TimeUnit.SECONDS)
                .writeTimeout(10000, TimeUnit.SECONDS).build();
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, final IOException e) {
                Log.e("TAG", "返回内容===失败>:" + e.toString());
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                String result = response.body().string();
                Log.e("TAG", "返回内容===成功>:" + result);
            }
        });
    }

2、java服务端接收代码

总结:实践是检验真理的唯一标准。

Original: https://www.cnblogs.com/qiantao/p/14789673.html
Author: QianTM
Title: android多文件上传,java服务端接收

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/572524/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Go gin 接入 prometheus

    Prometheus 的 go sdk 是由官方提供的,地址:https://github.com/prometheus/client_golang ,里面包含了生成 promet…

    Java 2023年6月9日
    077
  • SpringBoot实现自定义路由覆盖

    背景 公司最近有一个项目二期需要对一些功能进行改造,涉及部分框架内置业务接口个性化定制,兼容老接口功能并且增加一部分新的数据返回,由于前端调用这些接口分布较多且较为零碎,修改测试成…

    Java 2023年6月15日
    066
  • 日常踩坑_下载文件时文件名是乱码

    背景提要 一个下载文件的controller,下载下来内容虽然正常,但是文件名一直是乱码。 解决 需要清晰的一点就是,下载的文件名仅与请求头有关所以实际只要设置一下 respons…

    Java 2023年6月7日
    059
  • 三、DOS命令

    常用的DOS命令 #盘符切换 D: #查看当前目录下的所有文件 dir #切换目录 cd+空格+/d+空格+路径 #返回上一级 cd+空格+.. #清理屏幕 cls #退出终端 e…

    Java 2023年6月5日
    089
  • Windows 常用的快捷键

    键盘功能键 键盘功能键:Tab 、Shift 、Ctrl 、Alt 、空格 、 Enter 、 Window 、 ↑ 、 ↓ 、 ← 、 → *键盘快捷键:全选 、 复制 、 粘贴…

    Java 2023年6月8日
    086
  • Spring IOC装配Bean

    Spring IOC装配Bean Spring主要支持两种依赖注入方式,分别是属性注入和构造函数注入。同时也支持工厂方法注入方式。 属性注入的方式非常简单,即指通过setXxx()…

    Java 2023年6月7日
    062
  • Dubbo系列之服务暴露过程

    这周去苏州见大佬,没想到遇到一堆女粉丝,其中居然还有澡堂子堂妹,堂妹一遇到我就说敖丙哥哥我超级喜欢你写的dubbo系列,你能跟我好好讲一下他的服务暴露过程么? 我笑了笑:傻瓜,你想…

    Java 2023年6月9日
    073
  • 厉害!我带的实习生仅用四步就整合好SpringSecurity+JWT实现登录认证!

    小二是新来的实习生,作为技术 leader,我还是很负责任的,有什么锅都想甩给他,啊,不,一不小心怎么把心里话全说出来了呢?重来! 小二是新来的实习生,作为技术 leader,我还…

    Java 2023年6月9日
    094
  • nginx配置ssl证书实现https访问

    配置ssl证书之前,先准备SSL证书,至于获取的途径很多(阿里云的服务,第三方服务购买)。这里不详细解释。以下是我的SSL证书 准备好证书后,找到nginx的安装目录,我的安装位置…

    Java 2023年5月30日
    093
  • Sonar 扫描之分析参数介绍

    强制参数 Key 描述 默认 服务器网址 Key 描述 默认 项目的唯一标识。允许的字符是:字母,数字, ,与至少一个非数字字符。 对于 Maven 项目,这默认为 可选参数 Ke…

    Java 2023年6月16日
    042
  • 异步、邮件、定时任务

    异步、邮件、定时任务 14.1 异步任务 编写一个业务测试类 文件路径:com–dzj–service–AsynService.java @Se…

    Java 2023年6月5日
    066
  • java poi

    POI and EasyExcel Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java对Microsoft Of…

    Java 2023年6月9日
    066
  • 七、Java数组

    Java数组 什么是数组 数组是相同类型数据的有序集合。 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。 其中,每一个数据称作为一个数组元素,每个数组元素可以通…

    Java 2023年6月7日
    063
  • java操作pdf(pdfbox+poi)你想要的这里都有

    说两句废话 本来我只是想把我的一个pdf文件,多余的地方删除掉,再把个别页面的内容改下(多余内容干掉~),然后打印出来,我想要的这些wps还有很多软件都有,但是… 参考…

    Java 2023年6月7日
    075
  • SpringMVC入门

    1.1 ApplicationContext应用上下文获取方式 应用上下文对象是通过new ClasspathXmlApplicationContext(spring配置文件) 方…

    Java 2023年6月7日
    072
  • Javaweb-文件上传和邮件发送

    1.文件上传 新建空项目 准备工作 在maven仓库里下载commons io 和 commons fileupload两个jar包 实用类介绍 文件上传注意事项 为保证服务器安全…

    Java 2023年6月13日
    080
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球