Spring + xls и doc

355
24 декабря 2016, 15:59

Не получается загрузить файлы xls и doc(старый Office) файл загружается, но он пустой и выскакивает сообщение конфлик версий. С xlsx и docx все нормально. Вот код:

@GetMapping("getFileData/{id}")
public void downloadFile(@PathVariable long id,HttpServletResponse response)  
 {
    log.info("\n\nGET: /user/getFileData/"+id);
    File file = service.getFile(id);
    byte[]fileBytes = null; 
    try(OutputStream os = response.getOutputStream()) {
        if(file.getType().split("/")[0].equals("image")){
            fileBytes = service.loadImageFromFile(file.getFileName());
            response.reset();
            response.setContentType(file.getType());
            response.getOutputStream().write(fileBytes);
        }else if(file.getFileName().split("\\.")[1].equals("pdf")){
            fileBytes = service.loadFileFromFile(file.getFileName());
            response.reset();
            response.setContentType(file.getType());
            response.getOutputStream().write(fileBytes);
        }else if(file.getFileName().split("\\.")[1].equals("xls")){
            response.setHeader("Content-disposition","attachment; filename="
                    +file.getFileName().split("/")[2]);
            response.setContentType(file.getType());
            HSSFWorkbook workbook =  service.loadXLS(file.getFileName());
            response.reset();
            response.getOutputStream().write(workbook.getBytes());
        }else if(file.getFileName().split("\\.")[1].equals("xlsx")){
            response.setHeader("Content-disposition","attachment; filename="
                    +file.getFileName().split("/")[2]);
            response.setContentType(file.getType());
            XSSFWorkbook workbook =  service.loadXLSX(file.getFileName());
            workbook.write(os);
            os.flush();
        }else if(file.getFileName().split("\\.")[1].equals("doc")){
            response.setHeader("Content-disposition","attachment; filename="
                    +file.getFileName().split("/")[2]);
            response.setContentType(file.getType());
            HWPFDocument document =  service.loadDOC(file.getFileName());
            document.write(os);
            os.flush();
        }else if(file.getFileName().split("\\.")[1].equals("docx")){
            response.setHeader("Content-disposition","attachment; filename="
                    +file.getFileName().split("/")[2]);
            response.setContentType(file.getType());
            XWPFDocument document =  service.loadDOCX(file.getFileName());
            document.write(os);
            os.flush();
        }
    } catch (Exception e) {
        log.info("\n\n"+e.getMessage());
        return;
    }
        log.info("\nReturn: OK");
}
READ ALSO
android studio ошибка при запуске

android studio ошибка при запуске

Gradle 'MyApplication' project refresh failed Error:CreateProcess error=193, %1 не является приложением Win32

875
Добавление List-a в List как объекта

Добавление List-a в List как объекта

У меня есть сервис который получает Equipment по usernameИ в контроллере есть метод, который выводит во View Equipment у роли Manager и Users

410
Тестирование кода в Travis CI

Тестирование кода в Travis CI

Мне нужно в системе тестирования Travis CI в файле конфигурацииtravis

399
Java - вопрос по парсингу (Selenium)

Java - вопрос по парсингу (Selenium)

С помощью Selenium на Java пишу программу, которая заполняет некоторые поля, нажимает submit и тд

342