如果用户在Ajax浏览器中取消上传,则好像部分文件留在服务器上。我希望删除部分上传的文件。这个问题有方法解决吗?或者是否可以删除UI中的取消选项?
答案 0 :(得分: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;
}
Here您可以找到有关菜单自定义的更多信息。上下文菜单ID(如上例中的'CancelUpload')位于ITHitAJAXFileBrowser.js中,您可以在Phrases块中轻松找到它们,这部分代码不会缩小。顶级菜单ID(如“UploadProgressPanelMenu”)在菜单对象说明中列出here。
如果您在服务器端使用IT Hit WebDAV Server Engine,则可以在IResumableUpload.CancelUpload实施中删除该文件。请注意,只要取消上传命令是异步操作,上传可能会继续,您的文件可能会在您的存储中被阻止。
因为取消上传是异步的,所以这就是为什么Ajax文件浏览器在取消上传执行期间无法直接删除文件的原因。在大多数情况下,该文件通过上传在服务器端被阻止。