파일을 REST 서비스에 업로드하는 Java 데스크톱 클라이언트 응용 프로그램이 있습니다.RestTemplate.postForLocation을 사용하는 파일 업로드 진행률 표시 줄
REST 서비스에 대한 모든 호출은 Spring RestTemplate 클래스를 사용하여 처리됩니다.
업로드중인 파일이 상당히 클 수 있으므로 진행률 표시 줄을 구현하고 기능을 취소하려고합니다.
나는 이것을 웹에서 구현할 방법을 찾고 있었지만 운이 없었습니다.
내 자신의 ResourceHttpMessageConverter를 구현하고 writeInternal() 메서드를 대체하려고 시도했지만이 메서드는 실제로 요청을 게시하기 전에 버퍼링 된 작업 중에 호출되는 것처럼 보입니다. (그래서 스트림은 보내기 전에 하나씩 읽습니다.).
나는 CommonsClientHttpRequestFactory.createRequest() 메소드를 오버라이드하고 특별한 writeRequest() 메소드로 내 자신의 RequestEntity 클래스를 구현하기까지했다. 그러나 같은 문제가 발생한다. (스트림이 실제로 포스트를 보내기 전에 모두 읽힌다.)
내가 틀린 장소를 찾고 있습니까? 비슷한 일을 한 사람이 있습니까?
진행률 막대를 구현하는 방법에 대해 웹에서 읽은 많은 내용은 업로드를 쳐다 보면서 별개의 AJAX 요청을 사용하여 웹 서버를 폴링하여 진행하는 이상한 방법으로 보입니다.
도움이나 의견을 보내 주시면 감사하겠습니다.
당신은 아마도 어떤 종류의 출력 버퍼에 바이트를 추가 스트림으로 전송되어 지금까지
/5294532/httpclient-upload-big-file-and-show-sent-bytes-number – ams
링크를 제공해 주셔서 감사합니다. 불행히도이 예제는 저수준의 아파치 라이브러리를 사용하므로 SpringBree 라이브러리에 상응하는 FileBody 클래스가 무엇인지, 또는 어떻게 사용하기 위해 내 구현을 삽입 할 수 있는지 명확하지 않습니다. – glidester