Goal
This how-to describes how to use the multiple file upload.
For the functionality of multiple files you do not need to install any plug in.
Configuration
Please configure the connection in the aquima.properties
file in the home folder first. Currently there are two connection flavors:
Memory
connection.<connection name>.memory
File system
connection.<connection name>.filesystem.path=<your path>
Replace <your path> with the correct path. Note to use '/' in your path, e.g.
C:/Files/
.
Also check that your language properties file (e.g. messages_en-GB
) contains the following lines:
#fileupload fileupload.label.single=Add file... fileupload.label.multi=Add files... fileupload.description.filesize=Maximum file size is: {0} fileupload.description.extension=Allowed file extensions are: {0} fileupload.validation.extension=File type not allowed fileupload.validation.filesize=File is too large fileupload.status.succes=File(s) uploaded successfully fileupload.status.failed=Upload failed because the following file(s) do not meet all conditions:
Multiple File Upload
To build the functionality of multiple file upload the following steps have to be taken:
Define a connection name as described before.
- Create an entity, e.g. 'File', in your model.
- Create at least one attribute: File.Id. For convenience add also File.Name, File.Type and File.Size.
- Create an exposed flow.
- Create a page which is put in the flow and is connected.
Create a container of type
AQ_File_Upload
and place it on the page with the following parameters:Parameter Value Comments Connection <connection name> Persistence Temporary Mode Multiple files FileID File.Id FileName File.Name FileType File.Type FileSize File.Size - Create a container of type
AQ_InstanceSelectorPlus
.- Let the containment be: File.Id, File.Name, File.Type, File.Size, all of them read-only
- Let the parameters be: Parameter 'entity' should be 'File'.
- Let the instance selector container be the second container on the page.
- The upload container is ready to use.
When uploading a file the following default meta data will be stored. These are:
- ID
- Name (file name)
- ContentType
- .
- CreationDate
- CreatedByUserId
- CASE_ID
It is possible to extend this list with some custom meta data fields. These can be created and updated by using the AQ_File_UpdateMetaData
service.
Download File
To get the download file container work, first create a text item with the name 'DownloadText' and enter some text, e.g. Download.
Create a AQ_File_Download
container and add the following parameters:
Parameter | Value |
---|---|
Connection | <connection name> |
FileId | File.Id |
ButtonText | DownloadText |
This container can be used in the containment of the instance selector plus and it is ready to use.
Delete File
To be able to delete a file you need a service for that. Create a new service of type AQ_File_Delete
. Enter the following parameters:
Parameter | Value |
---|---|
Connection | <connection name> |
FileId | File.Id |
RemoveInstance | True |
This service can be used in the flow when a delete event is triggered. This service can be used directly.
Update Meta Data
Next to the default meta data that are stored, it is possible to define some of your own. These can be specified in the CustomMetaData parameter. This is an example with one meta data.
Parameter | Value |
---|---|
Connection | <connection name> |
FileId | File.Id |
CustomMetaData | Meta = File.Meta |
Get Meta Data
Is is possible to retrieve the meta data when providing an Id.
Parameter | Value |
---|---|
Connection | <connection name> |
FileId | File.Id |
FileName | File.Name |
FileType | File.Type |
FileSize | File.Size |
Move a File
By using the AQ_File_Move
it is possible to move a file from one connection to another connection. This could be useful when uploading to memory by default, adding some meta data and storing it on the file system afterwards. This service can be used by entering the following parameters.
Parameter | Value |
---|---|
ConnectionFrom | <connection name from one system> |
ConnectionTo | <connection name to another system> |
FileId | File.Id |
Flowing directly after an upload
There could be a need for directly triggering a flow when uploading a file. This could be useful when calling some services for setting information.
To be able to do this follow theses steps:
- Add an event, e.g. 'AutomaticUpload'.
- Add this event to the expected events of the
AQ_File_Upload
in the tab 'Events'. - Connect a service in the flow which is connected to this event.
Every time a new file is uploaded, this exit event will be taken.
Example application
See the file upload example project.