Файловый ридер в GWT - PullRequest
       0

Файловый ридер в GWT

2 голосов
/ 20 октября 2011

У меня возникла следующая проблема: я хочу внедрить в мое GWT-приложение средство чтения файлов, которое позволяет пользователю загружать файл и работать с его содержимым (в данном конкретном случае я говорю о HTML).Как я это понимаю?Насколько я знаю, нет никакого способа использовать обычный Java BufferedReader.Единственное, что я обнаружил до сих пор, это следующее:

        try {
        Request r = new RequestBuilder(RequestBuilder.GET, file).sendRequest("", new RequestCallback() {

            @Override
            public void onResponseReceived(Request request, Response response) {
                String text = response.getText();
                System.out.println("1234");
            }

            @Override
            public void onError(Request request, Throwable exception) {
                System.out.println("456");
            }

            });
    } catch (RequestException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

Но это не было бы так полезно, поскольку нет диалогового окна выбора файла.

Я бы очень признателен за вашу помощь!

С уважением

Ответы [ 5 ]

3 голосов
/ 21 октября 2011

В GWT нет готового к использованию API FileReader. Вы можете создать свой собственный поверх JS Api http://www.html5rocks.com/en/tutorials/file/dndfiles/ для Firefox / Chrome, и вам придется использовать какой-то плагин для IE (например, flash), чтобы он работал везде

1 голос
/ 20 сентября 2016

Вот еще один способ прочитать файл на стороне клиента, используя File Reader, используя GWT Elemental API.

https://gist.github.com/branflake2267/180b69b9a29987214643f62fb279151f

1 голос
/ 20 октября 2011

Вы можете загрузить файл на сервер с помощью FileUpload, а затем сразу же загрузить файл с сервера на клиент, используя RequestBuilder или GWT RPC, где вы сможете работать с ним.Вы не сможете использовать InputStreams или Readers, так как они на самом деле не эмулируются GWT (не совсем верно, см. Ниже).

Если это HTML, вам нужно быть осторожным - есть все виды последствий для безопасностив разрешении пользовательского HTML на страницу.Механизм GWT SafeHTML может быть использован для решения некоторых из этих проблем, но вам все равно придется управлять этим.

Кроме того, тривиально создать реализацию потоков / считывателей, которая работает в GWT -java.io.InputStream в основном работает в GWT как есть, но я не уверен, что вы можете просто скопировать этот класс по причинам лицензирования.Проект Apache Harmony включает в себя реализации, которые вы можете «скопировать» без этих ограничений.

0 голосов
/ 17 февраля 2013
0 голосов
/ 20 октября 2011

Невозможно реализовать программу чтения файлов на стороне клиента только из-за ограничений JavaScript. GWT-код на стороне клиента компилируется в код JavaScript, а затем в браузере выполняется JavaScript. У него нет доступа к локальным файлам или что-то еще.

Отметьте это для загрузки файла: http://gwt.google.com/samples/Showcase/Showcase.html#!CwFileUpload

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