如何从vaadin中的上传组件中获取文件

发布于 2025-01-31 04:02:22 字数 1267 浏览 2 评论 0原文

我是Vaadin的新手,我不知道如何从上传组件中获取文件,我总是有一个服务器错误。 我认为我不正确理解这是如何工作的。任何帮助将受到欢迎。 这是我的代码。

public MainView() {
    HorizontalLayout horizontalLayout = new HorizontalLayout();
    horizontalLayout.add(
            new H1("Stop Motion Creator")
    );
    add(horizontalLayout);

    MemoryBuffer memoryBuffer = new MemoryBuffer();
    Upload midiFileUpload = new Upload(memoryBuffer);
    midiFileUpload.setMaxFiles(1);
    midiFileUpload.setDropLabel(new Label("Upload a file in .mid format"));
    midiFileUpload.setAcceptedFileTypes("mid");
    midiFileUpload.setMaxFileSize(10);

    midiFileUpload.addSucceededListener(event -> {
        InputStream inputFileData = memoryBuffer.getInputStream();
        String fileName = event.getFileName();
        long contentLength = event.getContentLength();
        String mimeType = event.getMIMEType();

        Receiver receiver = new Receiver() {
            @Override
            public OutputStream receiveUpload(String s, String s1) {
                return null;
            }
        };
        OutputStream outputFileData = receiver.receiveUpload(fileName, mimeType);
        FileData filedata = new FileData(fileName, mimeType,outputFileData);
        File midiFile = filedata.getFile();
}

I'm new with Vaadin, and I don't know how to get the File from the Upload component, I'm always having a server error.
I don't think I understand properly how this works. Any help will be welcome.
This is my code.

public MainView() {
    HorizontalLayout horizontalLayout = new HorizontalLayout();
    horizontalLayout.add(
            new H1("Stop Motion Creator")
    );
    add(horizontalLayout);

    MemoryBuffer memoryBuffer = new MemoryBuffer();
    Upload midiFileUpload = new Upload(memoryBuffer);
    midiFileUpload.setMaxFiles(1);
    midiFileUpload.setDropLabel(new Label("Upload a file in .mid format"));
    midiFileUpload.setAcceptedFileTypes("mid");
    midiFileUpload.setMaxFileSize(10);

    midiFileUpload.addSucceededListener(event -> {
        InputStream inputFileData = memoryBuffer.getInputStream();
        String fileName = event.getFileName();
        long contentLength = event.getContentLength();
        String mimeType = event.getMIMEType();

        Receiver receiver = new Receiver() {
            @Override
            public OutputStream receiveUpload(String s, String s1) {
                return null;
            }
        };
        OutputStream outputFileData = receiver.receiveUpload(fileName, mimeType);
        FileData filedata = new FileData(fileName, mimeType,outputFileData);
        File midiFile = filedata.getFile();
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷弦 2025-02-07 04:02:22

这是我项目之一的代码示例

FileUploader buffer = new FileUploader();    
upload.setReceiver(buffer);
upload.setAcceptedFileTypes("image/jpeg", "image/png");
upload.addSucceededListener(event -> {
            try {
                File file = new File(buffer.getFilename());
                // Do whatever with file object
            } catch (IOException e) {
                e.printStackTrace();
            }
});

flieuploader.java

public class FileUploader implements Receiver {
    public static String BASE_PATH = "/tmp/";
    private File file;
    private String filename;

    public OutputStream receiveUpload(String filename,
                                      String mimeType) {
        // Create upload stream
        FileOutputStream fos = null; // Stream to write to
        try {
            // Open the file for writing.
            this.filename = FileUploader.BASE_PATH + filename;

            file = new File(this.filename);
            fos = new FileOutputStream(file);
        } catch (final java.io.FileNotFoundException e) {
            return null;
        }
        return fos; // Return the output stream to write to
    }

    public String getFilename() {
        return filename;
    }
};

Here's a code sample from one of my projects

FileUploader buffer = new FileUploader();    
upload.setReceiver(buffer);
upload.setAcceptedFileTypes("image/jpeg", "image/png");
upload.addSucceededListener(event -> {
            try {
                File file = new File(buffer.getFilename());
                // Do whatever with file object
            } catch (IOException e) {
                e.printStackTrace();
            }
});

FlieUploader.java

public class FileUploader implements Receiver {
    public static String BASE_PATH = "/tmp/";
    private File file;
    private String filename;

    public OutputStream receiveUpload(String filename,
                                      String mimeType) {
        // Create upload stream
        FileOutputStream fos = null; // Stream to write to
        try {
            // Open the file for writing.
            this.filename = FileUploader.BASE_PATH + filename;

            file = new File(this.filename);
            fos = new FileOutputStream(file);
        } catch (final java.io.FileNotFoundException e) {
            return null;
        }
        return fos; // Return the output stream to write to
    }

    public String getFilename() {
        return filename;
    }
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文