Uploading Widget JavaScript API — File Groups
On this page
- We’ve built the next version of the File Uploader.
A group is an ordered collection of file instances.
Groups are immutable: once created, they can not be changed. However, you do not
have to create a new group every time you delete a file: groups can hold null
values.
- Create a new group instance
- Get group info
- Get files in group as array
- Get file groups from CDN
- Object overview,
fileGroupInfo
Create a new group instance
You can create a new group from an array of files and/or other groups.
var fileGroup = uploadcare.FileGroup([file1, fileGroup1, file2]);
javascript
After a group instance is created, it can be pushed to Uploadcare by calling
the promise
method.
Get group info
You can subscribe to group upload events to let your app know when all files are uploaded, and a new group is created.
var groupPromise = fileGroup.promise();
groupPromise.done(function(fileGroupInfo) {
// Upload successfully completed and all files in the group are ready.
});
groupPromise.fail(function(errorType, fileGroupInfo, error) {
// Upload failed, or something else went wrong.
// `errorType: string` - Indicates the reason or location of the error, e.g. `info`, `baddata` etc.
// `fileGroupInfo: GroupFileInfo` - Group file info object if known. Could be undefined.
// `error: XMLHttpRequest | { message: string; code: string }` - The error response from the server or XMLHttpRequest instance that threw the error. Could be undefined.
// See the list of all the possible error codes and it's messages:
// https://uploadcare.com/api-refs/upload-api/#tag/Errors
// `error` will be the instance of XMLHttpRequest in case when it's network error
// here is example of how to check it
const isNetworkError = error && 'readyState' in error
});
javascript
There is also a way to check out you group upload progress. Make use of the
progress
function:
groupPromise.progress(function(uploadInfo) {
// State of upload is updated.
// This callback is invoked at least once with current state,
// immediately after assignment.
});
javascript
Get files in group as array
Here is how you get files stored in a group as array:
var arrayOfFiles = fileGroup.files();
javascript
Get file info on a first-ready-first-served basis:
$.each(arrayOfFiles, function(i, file) {
// Wait for file uploading.
file.done(function(fileInfo) {
// i is file positon in group.
console.log(i, fileInfo);
});
});
javascript
Get file info in line with their positions in a group:
$.when.apply(null, arrayOfFiles).done(function() {
// Info for each file will be passed as an argument.
var fileInfos = arguments;
$.each(fileInfos, function(i, fileInfo) {
// i is file position in the group.
console.log(i, fileInfo);
});
});
javascript
Get file groups from CDN
Our JavaScript API provides a method to load a file group from CDN via either its identifier or CDN URL.
uploadcare.loadFileGroup('cdf2fe62-3d43-47d4-9288-c3951561f5c7~2')
.done(function(fileGroup) {
// Group creation completed successfully.
})
.fail(function() {
// Something went wrong.
});
javascript
Object overview, fileGroupInfo
This is how the structure of fileGroupInfo
looks like,
Property | Type | Value |
---|---|---|
uuid | string | File group identifier. |
name | string | Localized group size string, e.g. “5 files”. |
size | number | Total file size in bytes. |
isStored | boolean |
|
isImage | boolean |
|
cdnUrl | string | File group CDN URL. |