I need to restrict the size of the image file in Kendo Editor ImageBrowser. The project is similar to the demo http://www.telerik.com/clientsfiles/e3e38f54-7bb7-4bec-b637-7c30c7841dd1_KendoEditorImageBrowser.zip?sfvrsn=0 .
Image browser has a possibility to use filtering by file extension http://docs.telerik.com/kendo-ui/api/web/editor#configuration-imageBrowser.fileTypes, but there is no similar way to set the maximum image file size.
I tried to set change and select events for ImageBrowser as here Kendo UI Editor - open event , but they were never invoked.
The difficult things are:
1) is created on fly, it is hard to set “change” event
2) even if that event is set, on e.preventDefault() kendo image browser still sure it was uploaded and tries to get the preview image from controller.
The thing I did was: trying to find that input control when each element is inserted to document. Once I found it, I marked it as hooked, to avoid hook it twice:
function
restrictUpload(e) {
try
{
var
files = e.target.files;
var
len = files.length;
var
totalSize = 0;
for
(
var
i = 0; i < len; ++i) {
totalSize += files[i].size;
}
if
(totalSize > 1024 * 1024) {
alert(
"You can add images less than 1MB size only"
);
e.preventDefault();
}
}
catch
(err) {
console.log(
"err.message "
+ err.message);
}
}
function
initUploadRestrict() {
try
{
var
inputControl = $(
'input[name=file][type=file][data-role=upload]'
);
console.log(
"inputControl.length= "
+ inputControl.length);
if
(0 !== inputControl.length &&
inputControl.data(
"HookedRestrictUpload"
) !==
true
)
{
inputControl.change(restrictUpload);
inputControl.data(
"HookedRestrictUpload"
,
true
);
}
}
catch
(err) {
console.log(err.message);
}
}
$(document).bind(
'DOMSubtreeModified'
,
function
() {
console.log(
"DOMSubtreeModified call"
);
initUploadRestrict();
})
I know this is wrong solution, because ImageBrowserController.Thumbnail is still invoked and the image still tries to appear in preview. Another con: DOMSubtreeModified is executed for hundreds times.
How to make Kendo ImageBrowser to restrict upload of images by file size in correct way?
Thanks