【发布时间】:2018-01-03 09:13:53
【问题描述】:
我正在尝试将文件与JSON 发布正文一起上传。我尝试过这样的事情:
requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("data", uploadFileName[1], RequestBody.create(MEDIA_TYPE_JPEG, file))
.addFormDataPart("name", uploadFileName[1])
.addFormDataPart("body",postBody)
.build();
注意:如果我想通过删除上传没有帖子正文的文件,上面的代码可以工作
.addFormDataPart("body",postBody)
我也尝试创建文件和帖子正文的 ByteOutputArray 并尝试创建ResquestBody。
类似这样的:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write((boundaryStr).getBytes("UTF-8"));
baos.write(("Content-Disposition: attachment;filename=\"" + uploadFileName + "\"\r\n").getBytes("UTF-8"));
baos.write(("Content-Type: application/octet-stream\r\n\r\n").getBytes("UTF-8"));
byte[] buffer = new byte[102400];// 100KB
int read = imageInputStream.read(buffer);
while (read >= 0) {
baos.write(buffer);
read = imageInputStream.read(buffer);
}
baos.write(("\r\n").getBytes("UTF-8"));
baos.write((boundaryStr).getBytes("UTF-8"));
baos.write(("Content-Disposition: attachment; name=\"" + fileNameText + "\"\r\n\r\n").getBytes("UTF-8"));
baos.write((postData).getBytes("UTF-8"));
baos.write(("\r\n").getBytes("UTF-8"));
baos.write(("--" + boundary + "--\r\n").getBytes("UTF-8"));
baos.flush();
MediaType MEDIA_TYPE_JPEG = MediaType.parse(fileType);
RequestBody requestBody = RequestBody.create(MEDIA_TYPE_JPEG,baos.toByteArray());
但没有任何效果。请帮忙。
【问题讨论】: