Если пользователь отменил загрузку в Ajax Browser, кажется, что частичный файл оставлен на сервере. Я ожидаю, что частично загруженные файлы будут удалены. Есть ли этому решение? или можно удалить параметр отмены в пользовательском интерфейсе?ITHit Ajax Browser upload cancel issue, усеченный файл, оставленный на сервере
ответ
Да, вы можете удалить пункт Отменить из контекстного меню панели загрузки. Пожалуйста, используйте следующий код:
ITHit.Events.AddListener(ajaxFileBrowser.GetMenuManager(), 'OnShowMenu', onShowMenu);
...
function onShowMenu(menu, aContextMenuHierarchyItems) {
if (menu.Id == 'UploadProgressPanelMenu'){
var index = getMenuIndexByMenuId(menu, 'CancelUpload');
if (index != -1) {
menu.Children.splice(index, 1);
}
}
}
function getMenuIndexByMenuId(menu, menuId) {
for (var i = 0, l = menu.Children.length; i < l; i++) {
if (menu.Children[i].Id == menuId) {
return i;
}
}
return -1;
}
Here вы можете найти более подробную информацию о меню настройки. Идентификаторы контекстного меню (например, «CancelUpload» в приведенном выше примере) находятся в ITHitAJAXFileBrowser.js, вы можете легко найти их среди блоков фраз, эта часть кода не будет уменьшена. Идентификаторы меню верхнего уровня (например, «UploadProgressPanelMenu») перечислены here в описании объекта меню.
Если вы используете IT Hit WebDAV Server Engine на стороне сервера, вы можете удалить файл в IResumableUpload.CancelUpload. Обратите внимание, что как только команда отмены отправки будет асинхронной, загрузка может продолжаться, и ваш файл может быть заблокирован в вашем хранилище.
Поскольку Отмена загрузки является асинхронной, это является причиной того, что Ajax File Browser не может удалить файл непосредственно во время Отмена загрузки. Файл в большинстве случаев блокируется на стороне сервера путем загрузки.