Retrofit2.0进行图片上传(后端Spring MVC)
来源:互联网 发布:华军软件下载中心 编辑:程序博客网 时间:2024/06/06 01:52
你该绕过的坑
Android端
用版本不低于2.0.1的库,不然在进行上传时会报类型转换错误
转换工厂库版本也不应低于2.0.1的
build.gradle依赖
compile ‘com.squareup.retrofit2:retrofit:2.0.1’
compile ‘com.squareup.retrofit2:converter-gson:2.0.1’
Retrofit初始化
Retrofit retrofit = new Retrofit.Builder() .addConverterFactory(GsonConverterFactory.create()) //基础地址,这里我以本地测试进行 .baseUrl("http://192.168.30.149:8080") .build();
接口编写
需要上传其他参数,可在方法里使用@Part进行添加 。实际开发中,我们上传图片需要与后台用户表进行关联,建议讲token放于请求头。
当上传因为其他原因不成功时,文件名在后台配置的文件夹里会以多一个引号结尾
- 下面的‘pic’为与后台约定的文件参数key
public interface FileUploadService { /** * 上传一张图片 * @param description * @param imgs * @return */ @Multipart @POST("/app/person/uploadpic.htm") Call<Result> uploadImage(@Part("filename") String description, @Part("pic\"; filename=\"image.png") RequestBody imgs); /** * 上传三张图片 * @param description * @param imgs * @param imgs1 * @param imgs3 * @return */ @Multipart @POST("/upload") Call<String> uploadImage(@Part("fileName") String description, @Part("file\"; filename=\"image.png\"")RequestBody imgs, @Part("file\"; filename=\"image.png\"")RequestBody imgs1, @Part("file\"; filename=\"image.png\"")RequestBody imgs3); }
使用
File file = new File("/mnt/sdcard/Download/29381f30e924b899cf2bfd036b061d950a7bf6f2.jpg");//用RequestBody包裹文件,application/octet-stream为文件类型,这里为二进制流,不知道文件类型时所用 RequestBody requestBody = RequestBody.create(MediaType.parse("application/octet-stream"), file); FileUploadService apiManager = retrofit.create(FileUploadService.class); Call<Result> call = apiManager.uploadImage("img",requestBody); call.enqueue(new Callback<Result>() { @Override public void onResponse(Call<Result> call, Response<Result> response) { Log.d("=======",response.body().getUrl()); } @Override public void onFailure(Call<Result> call, Throwable t) { Log.d("======",t.toString()); } });
Spring MVC
文件上传配置mod_spring_view.xml
<!-- 文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="UTF-8" p:resolveLazily="true" p:maxUploadSize="52428800" p:uploadTempDir="upload/temp"/>
Controller层
@RequestMapping(value = "uploadPic.htm") public String uploadPic(Model model, MultipartFile pic){ Result result = new Result(); //...此处进行存储,每个人写法不一样 return "jsonview"; }
2 0
- Retrofit2.0进行图片上传(后端Spring MVC)
- Retrofit2.0 带文本多图片上传及后台spring mvc 文本图片接收
- Retrofit2.0 上传图片
- retrofit2.0,上传图片
- Android前端RxJava2+Retrofit2;后端SpringMvc实现图片上传
- spring mvc 图片上传
- spring mvc 上传图片
- Spring MVC 图片上传
- Spring mvc图片上传
- spring mvc 上传图片
- spring mvc 图片上传
- spring mvc 图片上传
- spring mvc 上传图片
- Spring MVC-图片上传
- Spring MVC上传图片
- 使用Spring MVC对KindEditor进行图片/Flash上传
- retrofit2.0图片上传filename问题
- Retrofit2.0:上传图片到PHP
- JAVA启动参数
- 字节码操作_javassist库_动态创建新类_属性_方法_构造器_API详解JAVA216-217
- Unix学习(二)
- 人脸美化随笔1——研究方向总结
- 排序-直接插入排序
- Retrofit2.0进行图片上传(后端Spring MVC)
- C语言,函数指针与指针函数
- google更新5.0以后,用eclipse创建工程时出现的找不到styles.xml中的资源的问题
- ROS简明教材目录
- 【一天一道LeetCode】#5 Longest Palindromic Substring
- python日记——数据库操作
- display属性
- 1. Two Sum
- [BZOJ1787][AHOI2008]Meet 紧急集合(LCA)