1

如果用户在 Ajax 浏览器中取消上传,似乎部分文件留在了服务器上。我希望部分上传的文件被删除。有针对这个的解决方法吗?或者是否可以删除 UI 中的取消选项?

4

1 回答 1

0

是的,您可以从上传面板上下文菜单中删除取消项目。请使用以下代码:

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

在这里您可以找到有关菜单自定义的更多信息。上下文菜单 ID(如上例中的“CancelUpload”)位于 ITHitAJAXFileBrowser.js 中,您可以在 Phrases 块中轻松找到它们,这部分代码没有被缩小。顶级菜单 ID(如“UploadProgressPanelMenu”)在菜单对象描述中列出

如果您在服务器端使用 IT Hit WebDAV Server Engine,您可以删除IResumableUpload.C​​ancelUpload实现中的文件。请注意,一旦取消上传命令是异步操作,上传可能会继续,并且您的文件可能会在您的存储中被阻止。

因为取消上传是异步的,这就是为什么Ajax文件浏览器在取消上传执行过程中不能直接删除文件的原因。在大多数情况下,该文件在服务器端被上传阻止。

于 2013-02-26T18:42:37.270 回答