Android 上传图片 SSM 接收图片

 @Override
 public void updateHead(@NonNull RequestForm requestForm, @NonNull UpdateHead callback) {
     RequestBody requestFile1;
     MultipartBody.Part part1;
     File file1 = new File(requestForm.getQuest_id());
     requestFile1 = RequestBody.create(MediaType.parse("multipart/form-data"), file1);
     part1 = MultipartBody.Part.createFormData("file", file1.getName(), requestFile1);
     NetworkManager.getUserInstance()
     		 .getUserApi()
             .updateHead(part1)
             .subscribeOn(Schedulers.newThread())//子线程访问网络
             .observeOn(AndroidSchedulers.mainThread())//回调到主线程
             .doOnSubscribe(() -> {
             })
             .subscribe(defaultResponseVo -> {
                 try {
                     callback.onDataAvailable(defaultResponseVo);
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
             }, throwable -> {
                 try {
                     callback.onDataNotAvailable(throwable);
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
             });
}

requestForm.getQuest_id()为文件的路径

@Multipart
@POST("/users/updateHead")
Observable<DefaultResponseVo> updateHead(@Part MultipartBody.Part file);

后台:

@RequestMapping(value = "/updateHead")
@ResponseBody
public ResponseBuilder updateHead(HttpServletRequest request, @RequestParam("file") MultipartFile uploadFile) {
	String user = (String) request.getAttribute("USER");
	if (StringUtil.isEmpty(user))
		return ResponseBuilder.ERROR_AUTHORIZATION_FAIL;
	try {
		FastDFSClient fastDFSClient = new FastDFSClient("classpath:conf/client.conf");
		String originalFileName = uploadFile.getOriginalFilename();
		String extName = originalFileName.substring(originalFileName.lastIndexOf(".") + 1);
		String url = fastDFSClient.uploadFile(uploadFile.getBytes(), extName);
		url = HealthConstant.IMAGE_SERVER_URL + url;
		userService.updateUser(user, url);
		ResponseBuilder reBuilder = ResponseBuilder.SUCCESS;
		reBuilder.setResult(url);
		return reBuilder;
	} catch (Exception e) {
		e.printStackTrace();
		return new ResponseBuilder(400, 99, "图片上传失败");
	}
}

后台图片上传我是用FASTDFS

后台接收图片
springmvc配置:

<!-- 定义文件上传解析器 -->
<bean id="multipartResolver"
	class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<!-- 设定默认编码 -->
	<property name="defaultEncoding" value="UTF-8"></property>
	<!-- 设定文件上传的最大值5MB,5*1024*1024 -->
	<property name="maxUploadSize" value="5242880"></property>
</bean>
<!-- 文件上传组件 -->
<dependency>
	<groupId>commons-fileupload</groupId>
	<artifactId>commons-fileupload</artifactId>
</dependency>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值