小编Nal*_*llo的帖子

使用带有spring for android的压缩jpeg字节数组进行多部分发布请求

我已经在我的Android应用程序中成功使用spring for android来从/向服务器获取/发布数据.现在,我必须对多部分表单发布请求,但我一直无法按照我想要的方式运行它.

使用案例:1.从库中选择一张照片2.使用文件源将其加载到位图3.将位图压缩为ByteArrayOutputStream 4.将字节数组(ByteArrayOutputStream.toByteArray())传递给服务器.(我需要发送这个作为jpeg而不是application/octet-stream)

upload photo的服务器端点接受仅具有以下Mime类型的MultipartFile(注意,它不接受MimeType:application/octet-stream):

GIF("image/gif")
PNG("image/png", "image/x-png")
JPG("image/jpeg", "image/jpg", "image/pjpeg")
BMP("image/bmp")
Run Code Online (Sandbox Code Playgroud)

我尝试过使用示例代码,但到目前为止还没有成功.

使用以下代码,我收到以下错误:org.springframework.web.bind.MissingServletRequest ParameterException:必需的MultipartFile参数'file'不存在

非常感谢有关此事的帮助.谢谢,并保持良好的工作.

这是我的代码:

bitmap = BitmapFactory.decodeFile("/mnt/sdcard/DCIM/Camera/20130205_162546.jpg");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.JPEG, 60, bos);
byte[] data = bos.toByteArray();

// populate the data to post
MultiValueMap<String, Object> formData = new LinkedMultiValueMap<String, Object>();
formData.add("caption", "Test Caption");
formData.add("file", data);

// The URL for making the POST request
final String url = "http://api.example.com/imageUpload?oauth_token=XXXXXX";

HttpHeaders requestHeaders = new HttpHeaders();

// Sending multipart/form-data
requestHeaders.setContentType(MediaType.MULTIPART_FORM_DATA); …
Run Code Online (Sandbox Code Playgroud)

java post spring android multipartform-data

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

java ×1

multipartform-data ×1

post ×1

spring ×1