Где находится загруженный файл? - PullRequest
0 голосов
/ 10 ноября 2019

Я использую компонент Upload в проекте Vaadin8 для загрузки файла на сервер, как показано в исходном коде на этой странице:

https://demo.vaadin.com/sampler/#ui/data-input/other/upload

После того, как явыберите файл на моем компьютере и нажмите «загрузить», окно откроется точно так же, как в сэмплере, и индикатор выполнения завершится до конца, но файл не найден в файловой системе проекта. Есть еще один шаг, который я должен сделать? Как настроить папку назначения для загружаемых файлов?

1 Ответ

1 голос
/ 11 ноября 2019

Взято из официальной документации здесь Получение загрузки :

Загруженные файлы обычно хранятся как файлы в файловой системе, в базе данных или как временные объекты в памяти. Компонент загрузки записывает полученные данные в java.io.OutputStream, чтобы у вас была большая свобода в том, как вы можете обрабатывать загружаемый контент.

Таким образом, в вашем случае загруженный файл сохраняется каквременный объектВ документации по V8 пример отсечен, но представлен в V7: Получение данных для загрузки

 public OutputStream receiveUpload(String filename,
                                      String mimeType) {
        // Create upload stream
        FileOutputStream fos = null; // Stream to write to
        try {
            // Open the file for writing.
            file = new File("/tmp/uploads/" + filename);
            fos = new FileOutputStream(file);
        } catch (final java.io.FileNotFoundException e) {
            new Notification("Could not open file<br/>",
                             e.getMessage(),
                             Notification.Type.ERROR_MESSAGE)
                .show(Page.getCurrent());
            return null;
        }
        return fos; // Return the output stream to write to
    }
 public void uploadSucceeded(SucceededEvent event) {
        // Show the uploaded file in the image viewer
        image.setVisible(true);
        image.setSource(new FileResource(file));
    }

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

...