Правильный тип возврата для загрузки PDF.Весна - Аксиос - PullRequest
0 голосов
/ 19 октября 2018

В настоящее время я пытаюсь создать вызов веб-службы, который загружает файл.Я пытался, и он возвращает поврежденный файл PDF, который не может быть открыт.

Это то, что у меня есть:

Java-код:

@RequestMapping(value = "/download/{wellId:.+}/{userId:.+}/{companyId:.+}/{wellName:.+}",
        method = RequestMethod.POST)
public byte[] downloadPDF (@PathVariable("wellId") Integer wellId,
                        @PathVariable("userId") Integer userId,
                        @PathVariable("companyId") Integer companyId,
                        @PathVariable("wellName") String wellName,
                        HttpServletRequest request, HttpServletResponse response, @RequestBody CompletionReportRequest req) throws IOException{


        byte[] b = completionReport.getFinalCompletionSummary(wellId, userId, companyId, req);
        response.setContentLength(b.length);
        return b;
}

Axios

const instance = axios.create({
  baseURL: Utils.getLocation()+ '/' + API_PREFIX,
  timeout: 100000,
  headers: { Authorization: 'Bearer ' + $('#token').val()}
});

instance({
    method: Constants.WSMETHOD_POST,
    url: Constants.WSPATH_COMPLETION + Constants.WSPATH_DASHBOARD + Constants.WSPATH_DOWNLOAD + ref.sh.global.wellId + '/' 
                            + ref.sh.global.userId + '/' 
                            + ref.sh.global.companyId + '/' 
                            + ref.sh.global.wellName,
    data : param,
    responseType: 'arraybuffer',
    onUploadProgress: progressEvent => {
        // Computations
    },
    onDownloadProgress: progressEvent => {
        // Computations
    },
}).then(response => {
    // Create psuedo link to download file
    let blob = new Blob([response.data], { type:"application/pdf" })
    let link = document.createElement('a')
    let ts = new Date().getTime();
    link.href = window.URL.createObjectURL(blob)
    link.download = "FinalCompletionSummary_"+ref.sh.global.wellName+".pdf";
    link.click();
}); 

Я что-то упустил, что разрушает мой PDFфайл?ТИА.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...