Загрузка файла с помощью RequestBuilder - PullRequest
1 голос
/ 17 февраля 2010

Мне нужно загрузить файл в GWT в фоновом режиме, т.е. не из визуального виджета.

Для этого я нашел класс RequestBuilder, но немного документации о том, как использовать его для загрузки.

Содержание файла, которое мне нужно загрузить, - это 100% открытый текст.

Пока мой код выглядит так:

final String filename = UUID.randomUUID().toString() + ".txt";

RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, "http://localhost/upload");
rb.setRequestData(selected.getBody()); // getBody() is plain-text
rb.setHeader("Content-Type", "application/x-www-form-urlencodeddata");
rb.setCallback(new RequestCallback() {
    @Override
    public void onResponseReceived(Request request, Response response) {
        w.setUrl("http://localhost/magic.html?hide=status&open=" + filename);
        w.show();
        w.maximize();                            
    }

    @Override
    public void onError(Request request, Throwable exception) {
        exception.printStackTrace();
    }
});

// Checked Exceptions sucks *sigh*
try {
    rb.send();
}
catch (RequestException e) {
    e.printStackTrace();
}

Надеюсь, кто-нибудь подскажет, как решить эту проблему, спасибо!

Ответы [ 2 ]

1 голос
/ 19 февраля 2010

Я думаю, что невозможно загружать файлы на сервер без взаимодействия с пользователем, используя только JavaScript. Я думаю, что он заблокирован браузером, потому что это может означать, что любой может загрузить любой файл из вашей системы при посещении сайта, что будет серьезной проблемой безопасности. Я не знаю, почему вы хотели бы сделать это, но я думаю, вам нужно взглянуть на другой подход к тому, что вы пытаетесь сделать.

0 голосов
/ 20 февраля 2010

Кажется, что вы можете загружать файлы с передачами, поэтому в худшем случае вы можете реализовать что-то вроде этого с помощью JavaScript: текст ссылки

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