目录

前言

一、单文件上传

二、多文件上传

总结



前言

开发项目中需要进行单文件多文件的上传功能,下面演示的ApiResponse是自己分装的返回值,要根据自己的项目来完成。使用的mvvm框架,kotlin协程。

看下大体思路和传参形式,仅供参考


一、单文件上传

1、apiService中

     @Multipart@POST("xxxx/xxx")suspend fun upload(@Part part: MultipartBody.Part,@Query("code") code: String): ApiResponse<String>

2、acivity代码

  val file = File(it)val requestBody: RequestBody = RequestBody.create(MediaType.parse("image/*"), file)val part = MultipartBody.Part.createFormData("file", file.getName(), requestBody)mViewModel.upload(part)

二、多文件上传

1、apiservice中

    @POST("xxx/xxxxs")suspend fun uploads(@Body part: MultipartBody,@Query("code") code: String): ApiResponse<String>

2、acivity代码

      val builder = MultipartBody.Builder()builder.setType(MultipartBody.FORM)getDataList()?.filter { !it.filePath.isNullOrEmpty() }.forEach {val file = File(it.filePath)builder.addFormDataPart("files",file.getName(),RequestBody.create(MediaType.parse("image/jpg"), file))}mViewModel.uploads(builder.build())

总结

记录总结,要根据自己的框架进行参考改造。

Android 使用 okhttp3和retrofit2 进行单文件和多文件上传相关推荐

  1. Android开发笔记(一百一十)使用http框架上传文件

    HTTP上传 与文件下载相比,文件上传的场合不是很多,通常用于上传用户头像.朋友圈发布图片/视频动态等等,而且上传文件需要服务器配合,所以容易被app开发者忽略.就上传的形式来说,app一般采用htt ...

  2. php利用上传文件,如何利用PHP上传文件

    上载文件表单 请选择文件: $upload_file=$_FILES['upload_file']['tmp_name']; $upload_file_name=$_FILES['upload_fil ...

  3. ajax请求多张图片数据库,ajax上传多文件,一次上传多张图片

    ajax上传多文件,一次上传多张图片 作者:PHPYuan 时间:2018-11-04 03:41:44 使用ajax上传文件,指望这个对象:let fd = new FormData(); html ...

  4. node将当前文件上传到服务器,以编程方式将文件从node.js上传到另一个Web服务器...

    我需要将文件从node.js应用程序推送到其他地方运行的Web服务器,该服务器通过典型的上载机制接受文件.例如,假设接收服务器有一个网页,这样的形式:以编程方式将文件从node.js上传到另一个Web ...

  5. 求大师点化,寻求大文件(最大20G左右)上传方案

    之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...

  6. 关于OneThink后台附件上传无法保存文件id或无法上传问题

    关于OneThink后台附件上传无法保存文件id或无法上传问题 在使用OneThink进行项目开发的时候,遇到使用内置的上传附件功能时,无法保存相应的file_id,导致上传文件成功,但是数据库中对应 ...

  7. obs上传文件到服务器,obs上传文件到指定路径

    obs上传文件到指定路径 内容精选 换一换 需提前准备好OBS桶名.vi /opt/huawei/obsutil_adapter/obsutil_adapter.cfgbackup_path和back ...

  8. ajax上传多文件和数据,Ajax上传数据和上传文件(三种方式)

    Ajax向后端发送数据可以有三种方式:原生Ajax方式,jQuery Ajax方式,iframe+form 方式(伪造Ajax方式) Title .btn { background-color: co ...

  9. Web.Config文件配置之限制上传文件大小和时间

    在邮件发送系统或者其他一些传送文件的网站中,用户传送文件的大小是有限制的,因为这样不但可以节省服务器的空间,还可以提高传送文件的速度.下面介绍如何在Web.Config文件中配置限制上传文件大小与时间 ...

最新文章

  1. #51CTO学院四周年#让学习成为习惯
  2. 20 个 jQuery 超酷视觉效果构建教程推荐
  3. boost::mpl::vector用法的测试程序
  4. 原理_JS引擎对未声明变量的处理
  5. intellij存放插件的路径(转载)
  6. openmv串口发送数据_关于arduino和openmv串口通信的问题
  7. chrome 浏览器全屏操作
  8. linux下载命令 scp,linux命令详解之scp命令
  9. UniqueIdentifier 数据类型
  10. Kepware软件使用手册
  11. 漏洞补丁:漏洞命名(CVE和CNNVD)及补丁查找
  12. 转福布斯荐75本经商必读
  13. 教你自动识别快递公司,过滤重复单号,查询物流信息
  14. 刀片服务器性能对比,刀片服务器对比-刀锋上的较量
  15. 预训练模型 Fine-tuning
  16. 孙悟空吃蟠桃c语言编程,孙悟空吃蟠桃歇后语
  17. 从来只留一场梦 一场春梦成白头 上软疑似解体 忆仙剑而作
  18. tp框架配置路由的初学习
  19. 16进制 转为图片 php_十六进制编辑器(010 Editor)官方版下载_十六进制编辑器(010 Editor) v11.0中文汉化版64位...
  20. linux用信号写代码,Python 信号(linux) 源代码放附件中

热门文章

  1. ios 键盘弹出后马上收回_ios12键盘唤起后,收回键盘弹窗错位解决方案
  2. oracle中spool卸数,数据卸载--spool的使用
  3. EWSTM8系列教程03_主窗口、工具栏的概述
  4. r510服务器开机无显示,联想B320i开机无显示维修案例
  5. 计算机硬件系统的外观组成图,计算机硬件系统及组装.doc
  6. Python的优点与缺点
  7. webRTC(六):webrtc信令服务器实现
  8. java ctr_java – CTR模式使用初始向量(IV)
  9. emacs常用操作笔记
  10. c# 调用zebra打印指令 打印到USB端口