我正嘗試用Java以塊的形式上傳文件。
我塊上傳功能:文件上傳Java Spring
@Async
private Future<String> sendChunk(byte[] chunk, int start, int end, int numberOfChunks, String name, String sessionId) throws IOException {
LinkedMultiValueMap<String, Object> requestParams = new LinkedMultiValueMap<>();
requestParams.add("data", new String(java.util.Base64.getEncoder().encode(chunk), "UTF-8"));
requestParams.add("start", start);
requestParams.add("end", end);
requestParams.add("numberOfChunks", numberOfChunks);
requestParams.add("fileName", name);
requestParams.add("session", sessionId);
HttpEntity<LinkedMultiValueMap<String, Object>> requestEntity = new HttpEntity<>(requestParams);
UploadResponse uploadResponse = restTemplate.exchange(fileServiceUrl, HttpMethod.POST, requestEntity, new ParameterizedTypeReference<UploadResponse>(){}).getBody();
return new AsyncResult<>(uploadResponse.getSessionId());
}
這是文件的服務的API的樣子:
@RequestMapping(value = "/simpleUploader", method = RequestMethod.POST, produces = "application/json")
public ResponseEntity<UploadResponse> simpleUploader(
@RequestParam("data") String data,
@RequestParam("session") String sessionId,
@RequestParam("start") int start,
@RequestParam("end") int end,
@RequestParam("numberOfChunks") int numberOfChunks,
@RequestParam("fileName") String fileName) throws IOException {
....
}
現在,如果我嘗試上傳一個塊中的文件的服務與400 - Bad Request
響應。
棧跟蹤:
org.springframework.web.client.HttpClientErrorException:400空 在org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91) 在org.springframework。 web.client.RestTemplate.handleResponse(RestTemplate.java:667) at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:620) at org.springframework.web.client.RestTemplate.execute(RestTemplate。 java:580) at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:526)
甚至在它進入API函數之前它將被拒絕。
我已經以同樣的方式上傳,但在Javascript中。從Javascript一切工作,因爲它應該。
我錯過了什麼?
再檢查一下HTTP:// stackoverflow.com/questions/6074516/how-could-i-upload-a-large-file-in-chunks-using-java/29523375#29523375可能會有所幫助。 –
究竟是什麼? –
使用pl上傳的另一種上傳方式。 –