com.vaadin.flow.server.streams.
Interface UploadHandler
All Superinterfaces:
All Known Implementing Classes:
AbstractFileUploadHandler
, FileUploadHandler
, InMemoryUploadHandler
, TemporaryFileUploadHandler
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
Provides a flexible high-level abstraction for implementing file and arbitrary content uploads from client to server in Vaadin applications.
This interface can be implemented in two ways:
- By creating a lambda expression that implements the
handleUploadRequest(UploadEvent)
method - By creating a child or anonymous class that implements this interface
The interface provides several factory methods for common upload scenarios:
toFile(FileUploadCallback, FileFactory)
- for uploading files to the server file systemtoTempFile(FileUploadCallback)
- for uploading to temporary filesinMemory(InMemoryUploadCallback)
- for uploading files to memory
UploadHandler.inMemory((metadata, bytes) -> {
// validate and save data
});
All factory methods have overloads that allow adding a transfer progress
listener:
UploadHandler.toFile((metadata, file) -> {
// validate and save file
}, filename -> new File("/path/to/file", filename),
new TransferProgressListener() {
@Override
public void onComplete(TransferContext context,
long transferredBytes) {
// show notification about file upload completion
}
});
You can use a lambda expression to handle uploads directly:
UploadHandler handler = event -> {
var name = event.getContentType();
var size = event.getFileSize();
// validate file
try (InputStream inputStream = event.getInputStream()) {
// process input stream
}
};
Since:
24.8
-
Method Summary
Modifier and TypeMethodDescriptiondefault long
The maximum number of files allowed per request.
default long
The maximum allowed size of a single uploaded file, as opposed to
getRequestSizeMax()
.default long
The maximum allowed size of a complete request, as opposed to
getFileSizeMax()
.default void
handleRequest
(VaadinRequest request, VaadinResponse response, VaadinSession session, Element owner) Request handler callback for handing client-server or server-client data transfer scoped to a specific (owner) element.
void
handleUploadRequest
(UploadEvent event) Method that is called when the client wants to upload data to the url stored for this specific handler registration.
static InMemoryUploadHandler
inMemory
(InMemoryUploadCallback successCallback) Generate upload handler for storing download into in-memory
byte[]
.static InMemoryUploadHandler
inMemory
(InMemoryUploadCallback successCallback, TransferProgressListener listener) Generate upload handler for storing download into in-memory
byte[]
with progress handling.default void
responseHandled
(boolean success, VaadinResponse response) Method called by framework when
handleUploadRequest(UploadEvent)
methods have been called for all files.static FileUploadHandler
toFile
(FileUploadCallback successCallback, FileFactory fileFactory) Generate an upload handler for storing upload stream into a file.
static FileUploadHandler
toFile
(FileUploadCallback successCallback, FileFactory fileFactory, TransferProgressListener listener) Generate an upload handler for storing upload stream into a file with progress handling.
static TemporaryFileUploadHandler
toTempFile
(FileUploadCallback successCallback) Generate an upload handler for storing upload stream into a temporary file.
static TemporaryFileUploadHandler
toTempFile
(FileUploadCallback successCallback, TransferProgressListener listener) Generate an upload handler for storing upload stream into a temporary file with progress handling.
Methods inherited from interface com.vaadin.flow.server.streams.ElementRequestHandler
getDisabledUpdateMode, getUrlPostfix, isAllowInert
-
Method Details
-
handleUploadRequest
Method that is called when the client wants to upload data to the url stored for this specific handler registration.
After upload of all files is done the method
responseHandled(boolean, VaadinResponse)
will be called.Parameters:
event
- upload event containing the necessary data for getting the requestThrows:
IOException
- if an error occurs during upload -
responseHandled
Method called by framework when
handleUploadRequest(UploadEvent)
methods have been called for all files.This method sets the http response return codes according to internal exception handling in the framework.
If you want custom exception handling and to set the return code, implement this method and overwrite the default functionality.
Parameters:
success
- is there was no exception thrown for uploadresponse
- the response object for the upload request -
handleRequest
default void handleRequest(VaadinRequest request, VaadinResponse response, VaadinSession session, Element owner) throws IOException Description copied from interface:
ElementRequestHandler
Request handler callback for handing client-server or server-client data transfer scoped to a specific (owner) element. Note: when handling requests via this API, you need to take care of typical stream handling issues, e.g. exceptions yourself. However, you do not need to close the stream yourself, Flow will handle that for you when needed.
Specified by:
handleRequest
in interfaceElementRequestHandler
Parameters:
request
- VaadinRequest request to handleresponse
- VaadinResponse response to handlesession
- VaadinSession current VaadinSessionowner
- Element owner elementThrows:
IOException
- if an IO error occurred during data transfer -
getRequestSizeMax
default long getRequestSizeMax()The maximum allowed size of a complete request, as opposed to
getFileSizeMax()
. Only targets stream multipart uploads.The default value of -1 indicates, that there is no limit.
Returns:
The maximum allowed size, in bytes
-
getFileSizeMax
default long getFileSizeMax()The maximum allowed size of a single uploaded file, as opposed to
getRequestSizeMax()
. Only targets stream multipart uploads.The default value of -1 indicates, that there is no limit.
Returns:
Maximum size of a single uploaded file, in bytes
-
getFileCountMax
default long getFileCountMax()The maximum number of files allowed per request. Only targets stream multipart uploads.
Default is 10000.
Returns:
the maximum number of files allowed, -1 means no limit
-
toFile
Generate an upload handler for storing upload stream into a file.
Parameters:
successCallback
- consumer to be called when upload successfully completesfileFactory
- factory for generating file to write toReturns:
file upload handler
-
toFile
static FileUploadHandler toFile(FileUploadCallback successCallback, FileFactory fileFactory, TransferProgressListener listener) Generate an upload handler for storing upload stream into a file with progress handling.
Parameters:
successCallback
- consumer to be called when upload successfully completesfileFactory
- factory for generating file to write tolistener
- listener for transfer progress eventsReturns:
file upload handler instance with progress listener
-
toTempFile
Generate an upload handler for storing upload stream into a temporary file.
Parameters:
successCallback
- consumer to be called when upload successfully completesReturns:
temporary file upload handler instance
-
toTempFile
static TemporaryFileUploadHandler toTempFile(FileUploadCallback successCallback, TransferProgressListener listener) Generate an upload handler for storing upload stream into a temporary file with progress handling.
Parameters:
successCallback
- consumer to be called when upload successfully completeslistener
- listener for transfer progress eventsReturns:
temporary file upload handler instance with progress listener
-
inMemory
Generate upload handler for storing download into in-memory
byte[]
.Parameters:
successCallback
- consumer to be called when upload successfully completesReturns:
in-memory upload handler
-
inMemory
static InMemoryUploadHandler inMemory(InMemoryUploadCallback successCallback, TransferProgressListener listener) Generate upload handler for storing download into in-memory
byte[]
with progress handling.Parameters:
successCallback
- consumer to be called when upload successfully completeslistener
- listener for transfer progress eventsReturns:
in-memory upload handler with progress listener
-