GWT doGet () сервлет возвращает байтовый массив изображения или изображение клиенту - PullRequest
0 голосов
/ 03 января 2019

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

Я использую formPanel FormPanel.METHOD_GET для вызова моего сервлета doGet (), и я получаю изображение и сохраняю его в байтовом массиве.Я не уверен, как вернуть это клиенту?

код клиента

downloadPanel = new FormPanel();
downloadPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
downloadPanel.setMethod(FormPanel.METHOD_GET);
downloadPanel.setAction(GWT.getModuleBaseURL()+"downloadfile" + "?brandID="+ accountIdStr);
downloadPanel.submit();

downloadPanel.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {
            @Override
            public void onSubmitComplete(FormPanel.SubmitCompleteEvent submitCompleteEvent) {

                image.setUrl(" http://www.tutorialspoint.com/images/gwt-mini.png");

               // image.setUrl(submitCompleteEvent.getResults());
                Window.alert(submitCompleteEvent.getResults());

            }
        });

код сервера

public class FileDownload extends HttpServlet {


public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    request.setCharacterEncoding("UTF-8");
    UserAccount adminUserAccount = getAdminUserAccount(request);
    int accountId = adminUserAccount.getAccountID();

    byte[] b =  API.GetAccountManager().getCompanyLogo(accountId);

Массив байтов содержит изображение.Как я могу вернуть байтовый массив или изображение обратно клиенту?

1 Ответ

0 голосов
/ 03 января 2019

Используйте ответ Writer, чтобы записать ответ клиенту, например так:

byte[] b =  API.GetAccountManager().getCompanyLogo(accountId);
respose.getOutputStream().write(b);

Он будет записывать байты обратно клиенту, а на стороне клиента вам потребуется, скорее всего, проанализировать байты из InputStream.

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