ユーザーが Ajax ブラウザーでアップロードをキャンセルすると、部分的なファイルがサーバーに残っているように見えます。部分的にアップロードされたファイルが削除されることを期待しています。これに対する解決策はありますか?または、UI でキャンセル オプションを削除することは可能ですか?
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;
}
ここでは、メニューのカスタマイズに関する詳細情報を見つけることができます。コンテキスト メニュー ID (上記の例の「CancelUpload」など) は ITHitAJAXFileBrowser.js にあり、Phrases ブロックの中から簡単に見つけることができます。コードのこの部分は縮小されていません。最上位のメニュー ID (「UploadProgressPanelMenu」など) は、Menu オブジェクトの説明にリストされています。
サーバー側でIT Hit WebDAV Server Engineを使用している場合は、IResumableUpload.CancelUpload実装でファイルを削除できます。アップロードのキャンセル コマンドが非同期操作になるとすぐに、アップロードが続行され、ファイルがストレージでブロックされる可能性があることに注意してください。
アップロードのキャンセルは非同期であるため、アップロードのキャンセルの実行中に Ajax File Browser が直接ファイルを削除できないのはこのためです。ほとんどの場合、ファイルはアップロードによってサーバー側でブロックされます。