我得到的错误是 415 Unsupported media type.
我正在发送带有 zip 文件的表单数据以及其他一些参数。 在 angular2 中,我将内容类型设置为 multipart/form-data。
在 Java 后端也作为多部分/表单数据使用。 我正在使用 javax.ws.rs api。 我试过的方法。 使用@FormParam 无效 使用 FileInputStream 无效
我不能使用 FormDataParam 因为我没有使用球衣。我需要在 jax-ws-rs 中替换 FormDataParam。
尝试@Consumes(MediaType.APPLICATION_OCTET_STREAM)
在后端,您会收到一个 MultipartFile。在 Java Spring 中,它必须如下所示:
@PostMapping
public ResponseEntity<?> postData(@RequestParam("file") MultipartFile file, @RequestParam("agencyId") Long agencyId) {
// your Business-Code here
}
在前端,您可以将文件和其他参数作为 Formdata 推送,如下所示。该示例使用 String-Value 和名为“file”的 zip 文件,两者都在 FormData 中:
// Popup for fileupload
let inputElement = document.createElement("input");
inputElement.type = 'file';
inputElement.accept = 'zip';
// get file, chosen by user in popup
let files = fileChosenEvent.target as HTMLInputElement;
// create FormData
const formData = new FormData();
formData.append('agencyId', agencyId.toString())
formData.append('file', new Blob([files.files[0]], { type: application/octet-stream" }), file.name);