安卓发送图片文字,java后台接收
安卓使用retrofit2 和rxjava2
url:
@Multipart
@POST(UrlTools.STORYUPLOAD)
Observable<Result> saveReport(@Part List<MultipartBody.Part> parts)
activity:
if (contentText.equals("") && mSelected.size() < 1) {
ToastUtils.showBottomToast("请输入内容", 0);
return;
}
ContentResolver contentResolver = getContentResolver();
MultipartBody.Builder builder = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("name", contentText);//表单类型; add需要的文本,第一个参数与后台对应,传输需要的文本
for (int i = 0; i < mSelected.size() - 1; i++) {
File file1 = null;
file1 = new File(getFilePathFromContentUri(mSelected.get(i), contentResolver));
RequestBody imageBody = RequestBody.create(MediaType.parse("multipart/form-data"), file1);
builder.addFormDataPart("file", file1.getName(), imageBody);//imgfile 后台接收图片流的参数名
}
List<MultipartBody.Part> parts = builder.build().parts();
// 实现请求
utilsPresenter.getStory(VintageActivity.this, parts);
开始请求:
//上传文件
@Override
public void upFile(BaseImpl context, List<MultipartBody.Part> parts) { RetrofitRequest.getApiService()
.saveReport( parts)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new DefaultObserver<Result>(context, false) {
@Override
public void onSuccess(Result story) {
listener.onSuccess(story);
} @Override
public void onFail(Result response) {
listener.onError(response, STORYLIST);
}
});
}
Java后台 springboot2
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public String handleFileUpload(HttpServletRequest request) {
MultipartHttpServletRequest params = ((MultipartHttpServletRequest) request);
List<MultipartFile> files = ((MultipartHttpServletRequest) request)
.getFiles("file");
String name = params.getParameter("name"); //参数与安卓addFormDataPart的第一个参数对应
System.out.println("name:" + name);
String id = params.getParameter("id");
System.out.println("id:" + id); Map<String, String> urlMap = new HashMap<>(); MultipartFile file = null;
BufferedOutputStream stream = null;
for (int i = 0; i < files.size(); ++i) {
file = files.get(i);
if (!file.isEmpty()) {
try {
byte[] bytes = file.getBytes();
stream = new BufferedOutputStream(new FileOutputStream(
new File("./../images/"+file.getOriginalFilename())));//存在项目根目录下
stream.write(bytes);
stream.close();
urlMap.put(SERVER_URL+"resource/images/" , file.getOriginalFilename());
} catch (Exception e) {
stream = null;
return e.toString();
}
} else {
return "空";
}
}
return “成功”;
安卓发送图片文字,java后台接收的更多相关文章
- Ireport5.0.1 从java后台接收list集合
作为ireport新手,开始使用时总有很多问题,说一下今天解决的一个问题,就是怎样从java后台接收list集合并显示出列表. 1.首先要在主dataset中的Paramerters 中创建参数lis ...
- angular的$http.post()提交数据到Java后台接收不到参数值问题的解决方法
本文地址:http://www.cnblogs.com/jying/p/6733408.html 转载请注明出处: 写此文的背景:在工作学习使用angular的$http.post()提交数据时, ...
- base64编码上传图片java后台接收实例
原文地址:http://blog.csdn.net/tonyfreak/article/details/72522855 思路 前台传以data:image/jpeg;base64,开头的base64 ...
- java后台接收json数据,报错com.alibaba.fastjson.JSONObject cannot be cast to xxx
从前台接收json封装的list数据,在后台接收时一直报错,com.alibaba.fastjson.JSONObject cannot be cast to xxx, 使用这种方式接收可以接收 @R ...
- Postman发送请求,及后台接收
一.前言 在使用postman工具测试api接口的时候,如何使用 json 字符串传值呢,而不是使用 x-www-form-urlencoded 类型,毕竟通过 key-value 传值是有局限性的. ...
- 前台页面上传data image图片,java后台接收图片保存
最近在项目中有这么一个需求,就是上传一个视频文件,然后要获取视频文件的第一帧图片,这个可以通过canvas获取得到,得到的是一个dataURL,之后还要将这个图片上传到云,这个时候如何操作就不清楚了, ...
- 手机端上传图片及java后台接收和ajaxForm提交
有很多微信开发的项目在手机端需要传图片,但是又不想调用微信的上传图片接口,于是采取了如下做法: 使用ajaxForm提交文件所需js:jquery.form.js 页面代码: <%@ page ...
- FastDFS图片服务器java后台的简单调用
工具类: package com.liveyc.common.fdfs; import org.apache.commons.io.FilenameUtils; import org.csource. ...
- java后台接收微信服务号/订阅号消息
1.申请订阅号(适合个人)或者服务号(适合企业) 微信公众平台 2.填写配置 服务器地址: 需要接收消息 的服务端接口地址 令牌:通话识别码,随便写,后端接收时,使用一样的就可以了. 消息加密秘钥 : ...
随机推荐
- Butterfly
Butterfly 时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld 题目描述 给定一个n*m的矩阵,矩阵 ...
- HDU 1210
感觉就是乱搞找规律 自己写几组数据 本来开始是想着把 n 个数字每次回到原来位置各需要多少次,然后取它们的最小公倍数就好了 但是数据写着写着发现每一个数回到原来位置次数都是一样的,那么就简单了,直接第 ...
- Hihocoder 1329(splay)
Problem 平衡树 Splay 题目大意 维护一个数列,支持三种操作. 操作1:添加一个数x. 操作2:询问不超过x的最大的数. 操作三:删除大小在区间[a,b]内的数. 解题分析 和上一题相比, ...
- mysql MVCC原理理解
MVCC多版本控制: 指的是一种提高并发的技术.最早的数据库系统,只有读读之间可以并发,读写,写读,写写都要阻塞.引入多版本之后,只有写写之间相互阻塞,其他三种操作都可以并行,这样大幅度提高了Inno ...
- MySQL用户及数据安全专题
1 简单介绍 1.1 概要 1.2 权限分类 2 加入用户 2.1 语法例如以下: CREATE USER user_specification [, user_specification] ...
- JobHistory搜索智能化
前言 做过hadoop集群问题排查工作的同学一定用过JobHistory,这是一个非常好用的"利器",为什么这么说呢?正如这个工具的名称所叫的那样,这个工具能帮你找到历史Job跑过 ...
- 面向对象设计:共性VS个性-------继承的粒度和聚合的粒度以及类的重构
共性和个性 依据面向对象的原理.类是对象的抽象.也就是说.类是一系列的既有共性又有个性的对象的高度概括,类的属性和方法代表了隶属于该类的全部对象的共性,类的每一个对象实例都能够有不同的属性值,这反映了 ...
- iOS开发-植入广告(iAd, Admob实例)
应用中植入广告是一种非常好的盈利手段. 以下介绍主流的两种方法.iAd, Admob 先mark一个非常具体的pdf. http://pan.baidu.com/share/link?sharei ...
- 第一章 Java Collections Framework总览
1.Java容器 Java容器中只能存放对象,对于基本数据类型(byte,short,char,int,long,float,double,boolean),需要包装成对象类型(Byte,Short, ...
- new (C# Reference)
https://msdn.microsoft.com/en-us/library/51y09td4.aspx In C#, the new keyword can be used as an oper ...