Когда компонент Kendo Upload должен выполнить загрузку во второй раз, обработчик события onUpload не запускается.
Я использую загрузку kendo с помощью cropperjs (https://github.com/fengyuanchen/cropperjs/blob/master/README.md), чтобы загрузить изображение, обрезатьзатем он отправляется на сервер. Если изображение слишком большое, сервер отправляет ошибку. Ожидается, что пользователь выберет другую область обрезки и снова отправит изображение. На последнем шаге ничего не происходит.
Здесьспособ обрезки изображения и загрузки при загрузке
cropper.crop();
var canvas = cropper.getCroppedCanvas();
canvas.toBlob(function (blob) {
image = blob;
$("#file").data("kendoUpload").upload();
});
Затем в обработчике onUpload исходное вложенное изображение заменяется на обрезанное.
e.data = {
file: image,
userName: $("#User_Login").val()
};
На сервере отправляется ошибка:
public virtual ActionResult UpdateUserImage([FromBody]HttpPostedFileBase file, [FromBody]string userName)
{
try
{
ImageHelper.CheckImage(file);
}
catch (Exception e)
{
return new LargeJsonResult(new
{
error = e.Message,
})
{
StatusCode = HttpStatusCode.PreconditionFailed
};
}
...
}
Ошибка обрабатывается в обработчике процесса onError:
var err = e.XMLHttpRequest;
if (err.status === 412) {
var body = JSON.parse(err.response);
alert(body.error);
}
else {
alert("Unable to upload the file. Please check that the
size is less than 10Mb.");
}
После этого пользователю разрешено обрезать уже выбранное изображение. И после изменения обрезанной области выполните шаги, описанныеожидается, что выше будет повторяться. Но после $("#file").data("kendoUpload").upload();
в первом блоке кода ничего не происходит. Однако я ожидаю, что должен быть вызван обработчик события onUpload.