# Install

## Maven

```xml
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-upload-flow</artifactId>
</dependency>
```

# Import

```java
import com.vaadin.flow.component.upload.Upload;
import com.vaadin.flow.component.upload.receivers.MultiFileMemoryBuffer;
```

# Variants

## Single File Mode

```java
MultiFileMemoryBuffer buffer = new MultiFileMemoryBuffer();
Upload upload = new Upload(buffer);
upload.setMaxFiles(1);
upload.setDropAllowed(true);

upload.addSucceededListener(event -> {
    String fileName = event.getFileName();
    InputStream inputStream = buffer.getInputStream(fileName);
    // process file
});
```

## Multiple File Mode

```java
MultiFileMemoryBuffer buffer = new MultiFileMemoryBuffer();
Upload upload = new Upload(buffer);
upload.setMaxFiles(5);
upload.setDropAllowed(false);
```

## File Type Restriction

```java
MultiFileMemoryBuffer buffer = new MultiFileMemoryBuffer();
Upload upload = new Upload(buffer);
upload.setAcceptedFileTypes("application/pdf", "image/png", "image/jpeg");
upload.setMaxFileSize(5 * 1024 * 1024); // 5 MB
```
