SSM + Android 网络文件上传下载
SSM + Android 网络交互的那些事
ssm做为后台与android交互,相信只要是了解过的人都知道一些基本的数据交互,向json,对象,map的交互就像喝水一样简单,这些基本的交互也是学习ssm后台开发的基本,但是好多人却是会忽略文件的交互。毕竟大多数培训老师是没有讲这些东西的(至少小编我的启蒙老师就没有介绍过)。好了废话不多说,直接上!!!!!!!!
在这里我用的是okHttp网络请求框架:https://github.com/square/okhttp(官方的开源库)
①ssm服务端的做法步骤:
1. 在 spring-servlet.xml 配置文件中加入下面的代码,用以通知spring加载文件上传处理器:
<!-- 定义文件上传处理器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="UTF-8" />
2.ssm 控制器编写的映射关系:
@RequestMapping(value="user/postFile.action",method = RequestMethod.POST)
@ResponseBody
public String postFile(@RequestParam("file") MultipartFile file){
String name = file.getContentType();
System.out.println(name);
// if(file.isEmpty()){
//
// System.out.println("fial");
// //return "successful";
// }else{
// System.out.println("successful");
// //return "fail";
// }
return null;
3,记得加一个依赖库,commons-fileupload.jar 。如果用的是maven管理的话在pom.xml中加入下面依赖就好!
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
②android 通过okhttp上传文件(multipart form/data)
public Request postFile(String url,File file){
RequestBody fileBody = RequestBody.create(MediaType.parse("image/jpg"), file);
MultipartBody.Builder builder = new MultipartBody.Builder();
builder.setType(MultipartBody.FORM)
.addFormDataPart("file","welcome_crop.jpg",fileBody);
RequestBody requestBody = builder.build();
Request request = new Request.Builder().url(url)
.post(requestBody)
.build();
return request;
}
public void execute(final Request request, BaseCallBack callBack){
if(callBack == null){
callBack = BaseCallBack.CALLBACK_DEFAULT;
}
final BaseCallBack finalCallBack = callBack;
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
sendFailedResult(call,e,finalCallBack);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (call.isCanceled()){
sendFailedResult(call,new Exception("response is canceled"),finalCallBack);
return;
}
Log.d(TAG,""+response.code());
if (!finalCallBack.validateResponse(response)){
sendFailedResult(call,new Exception("response is failed"+response.code()),finalCallBack);
return;
}
try {
Object object = finalCallBack.parseResponse(response);
sendSuccessResult(object,finalCallBack);
}catch (Exception e){
e.printStackTrace();
}finally {
if(response.body()!=null){
response.close();
}
}
}
});
}
调用
Request fileRequest = OkHttpUtils.getInstance().postFile(url,file);
OkHttpUtils.getInstance().execute(fileRequest, new MyStringCallBack());
https://github.com/ggyuer/ssmAndandroid(Android 端okhttp请求,服务端用自己的)
}
SSM + Android 网络文件上传下载的更多相关文章
- Android okHttp网络请求之文件上传下载
前言: 前面介绍了基于okHttp的get.post基本使用(http://www.cnblogs.com/whoislcj/p/5526431.html),今天来实现一下基于okHttp的文件上传. ...
- Android OkHttp文件上传与下载的进度监听扩展
http://www.loongwind.com/archives/290.html 上一篇文章介绍了用Retrofit实现文件的上传与下载,但是我们发现没办法监听上传下载的进度,毕竟我们在做开发的时 ...
- springmvc文件上传下载简单实现案例(ssm框架使用)
springmvc文件上传下载实现起来非常简单,此springmvc上传下载案例适合已经搭建好的ssm框架(spring+springmvc+mybatis)使用,ssm框架项目的搭建我相信你们已经搭 ...
- ssm文件上传下载比较详细的案例
背景:ssm框架 接下来,我会介绍单文件上传,下载,多文件的上传,下载,使用ajax进行文件的上传下载,和普通的表单提交的文件上传下载. 只要做项目,总是少不了文件的操作,好了废话不多说,直接上代码! ...
- SSM简单实现文件上传和下载
一.配置spring-mvc <!-- 配置多媒体文件解析器 --> <bean id="multipartResolver" class="org.s ...
- 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)
艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项 ...
- 2013第38周日Java文件上传下载收集思考
2013第38周日Java文件上传&下载收集思考 感觉文件上传及下载操作很常用,之前简单搜集过一些东西,没有及时学习总结,现在基本没啥印象了,今天就再次学习下,记录下自己目前知识背景下对该类问 ...
- 转:【专题十一】实现一个基于FTP协议的程序——文件上传下载器
引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...
- Java实现FTP批量大文件上传下载篇1
本文介绍了在Java中,如何使用Java现有的可用的库来编写FTP客户端代码,并开发成Applet控件,做成基于Web的批量.大文件的上传下载控件.文章在比较了一系列FTP客户库的基础上,就其中一个比 ...
随机推荐
- 关于Sublime Text 3的几个问题总结
问题1:Sublime Text 3的注册码. 注册码网上搜有很多,所以可以去网上找.我现在给的可能以后就不能用了,而且我也是网上找的... 这个现在最新版本是可用的. —– BEGIN LICENS ...
- MySql cmd下的学习笔记 —— 有关select的操作(max, min等常见函数)
先把之前建的goods表找到 找到最贵的本店价(max) 找到最便宜的本店价(min) 查出一共还有多少商品(count) 查看商品价的平均价(avg) 查看本店有多少种商品 当count(*)时 输 ...
- CMakeLists 链接库相关指令
set(LSTAR_DIR "$ENV{HOME}/LStar_build") include_directories(${LSTAR_DIR}) LINK_DIRECTORIES ...
- 论文笔记:Rich feature hierarchies for accurate object detection and semantic segmentation
在上计算机视觉这门课的时候,老师曾经留过一个作业:识别一张 A4 纸上的手写数字.按照传统的做法,这种手写体或者验证码识别的项目,都是按照定位+分割+识别的套路.但凡上网搜一下,就能找到一堆识别的教程 ...
- AD7729_双通道Sigma-Delta ADC
sigma-delta adc的原理,就是通过一种结构把量化噪声调制到频谱的高端,也即对量化噪声而言,sdm是一个高通滤波器,而对基带信号则等价为一个全通滤波器,这样等价的基带信号的量化噪声就很小了, ...
- Linux内核很吊之 module_init解析 (下)【转】
转自:https://blog.csdn.net/richard_liujh/article/details/46758073 版权声明:本文为博主原创文章,未经博主允许不得转载. https://b ...
- CGroup 介绍、应用实例及原理描述【转】
转自:https://www.cnblogs.com/caoxiaojian/p/5633430.html CGroup 介绍 CGroup 是 Control Groups 的缩写,是 Linux ...
- 广联达 BIM5D 云平台---《建筑信息模型标准》解读
广联达 BIM5D 云平台: 1.用户管理: https://account.glodon.com/info 2.模型使用: http://bim5d-hunan.glodon.com/api/v ...
- requests库入门08-delete请求
还是使用GitHub的接口,之前我们新增了邮箱,这次使用delete请求来删除邮箱,接口文档地址 import requests test_url = 'https://api.github.com' ...
- cryptsetup文件系统加密
今天做了SYC攻防题的文件系统挂载部分,在找到挂载最内层的final文件时发现mount无法识别,这也许就是一个加密的文件系统吧,还好-在龟速的 网络环境下查阅到了losetup循环挂载系统命令,但是 ...