将MultiPart文件从Android上传到服务器(SpringMVC)

时间:2015-10-26 10:14:07

标签: android spring spring-mvc retrofit

如果,我使用Postmam文件上传没有问题。但是,当anroid尝试在服务器上传文件时,方法会抛出NPE,因为MultipartFile file = null。

的Android

RequestBody requestBody = RequestBody.create(MediaType.parse("image/*"), file);

Call<MediaResponseModel> call = service.uploadImage(requestBody);

call.enqueue(new RetrofitCallback<>(callback));


@POST("/uploadImage")

Call<MediaResponseModel> uploadImage(@Part("file") RequestBody file);

服务器

@RequestMapping(value = "/uploadImage", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<?> imageUpload(@RequestHeader(value = "id") String sessionId,
                                      @RequestParam (value = "file")   MultipartFile file)

的ApplicationContext

 <bean id="jsonConverter"
      class="org.springframework.http.converter.json.GsonHttpMessageConverter">
    <property name="supportedMediaTypes">
        <list>
            <value>application/json;charset=UTF-8</value>
        </list>
    </property>
</bean>

<mvc:annotation-driven >
<mvc:message-converters>
    <bean class="org.springframework.http.converter.json.GsonHttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>

2 个答案:

答案 0 :(得分:1)

使用HTTP在Android上很难做到这一点,你可以使用一些第三方库。

  1. ion
  2. enter link description here
  3. 两者都是很好的库,我在我的项目中都使用过它们。

答案 1 :(得分:1)

您可以使用Retrofit网络库,它是最快的一个

它支持多部分文件,其实现非常简单

http://square.github.io/retrofit/