ITHit Ajax Browser проблема отмены загрузки, усеченный файл остался на сервере

Если пользователь отменяет загрузку в Ajax Browser, создается впечатление, что на сервере остается частичный файл. Я ожидаю, что частично загруженные файлы будут удалены. Есть ли этому решение? или есть возможность убрать опцию отмены в интерфейсе?

1 ответ

Да, вы можете удалить пункт Отмена из контекстного меню панели загрузки. Пожалуйста, используйте следующий код:

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;
}

Здесь вы можете найти больше информации о настройке меню. Идентификаторы контекстного меню (например, "CancelUpload" в приведенном выше примере) расположены в ITHitAJAXFileBrowser.js, их можно легко найти среди блока фраз, эта часть кода не сокращена. Идентификаторы меню верхнего уровня (например, "UploadProgressPanelMenu") перечислены здесь в описании объекта меню.

Если вы используете IT Hit WebDAV Server Engine на стороне сервера, вы можете удалить файл в реализации IResumableUpload.CancelUpload. Обратите внимание, что как только команда отмены загрузки станет асинхронной, загрузка может продолжиться, и ваш файл может быть заблокирован в вашем хранилище.

Поскольку отмена загрузки является асинхронной, это является причиной того, что Ajax File Browser не может удалить файл непосредственно во время отмены загрузки. Файл в большинстве случаев блокируется на стороне сервера при загрузке.

Другие вопросы по тегам