Отправьте файл XLSX клиенту, используя JAVA RAP RWT - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь отправить файл (xlsx) клиенту со стороны сервера, используя RWT RAP, я пытаюсь получить стандартное всплывающее окно "сохранить как"

Вот где я нахожусь:

public static void openFile(Shell parent, String filename) {
    HttpServletResponse response = RWT.getResponse();
    try {
        File source = new File(filename);
        FileInputStream inputStream = new FileInputStream(source);

        // obtains ServletContext
        ServletContext context = RWT.getUISession(parent.getDisplay()).getHttpSession().getServletContext();
        String relativePath = context.getRealPath("");
        System.out.println("relativePath = " + relativePath);
        // gets MIME type of the file
        String mimeType = context.getMimeType(filename);
        if (mimeType == null) {        
            // set to binary type if MIME mapping not found
            mimeType = "application/octet-stream";
        }
        System.out.println("MIME type: " + mimeType);
        response.setContentType(mimeType);
        response.setContentLength((int) source.length());

        // forces download
        String headerKey = "Content-Disposition";
        String headerValue = String.format("attachment; filename=\"%s\"", source.getName());
        response.setHeader(headerKey, headerValue);

        // obtains response's output stream
        OutputStream outStream = response.getOutputStream();

        byte[] buffer = new byte[25000];
        int bytesRead = -1;

        while ((bytesRead = inputStream.read(buffer)) != -1) {
            outStream.write(buffer, 0, bytesRead);
        }
        inputStream.close();
        outStream.flush();
        outStream.close();  
    } catch (Exception e) {
        System.out.println("error : " + e.getMessage());
    }

}

enter image description here В моем браузере я получил нечитаемый символ с этой ошибкой в ​​конце: Ошибка: SyntaxError: Неожиданный токен P в JSON в позиции 0

Ив своей консоли я заметил это исключение (не уверен, что оно связано с моей реальной проблемой)

enter image description here

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