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」など) は、Menu オブジェクトの説明にリストされています。

サーバー側でIT Hit WebDAV Server Engineを使用している場合は、IResumableUpload.C​​ancelUpload実装でファイルを削除できます。アップロードのキャンセル コマンドが非同期操作になるとすぐに、アップロードが続行され、ファイルがストレージでブロックされる可能性があることに注意してください。

アップロードのキャンセルは非同期であるため、アップロードのキャンセルの実行中に Ajax File Browser が直接ファイルを削除できないのはこのためです。ほとんどの場合、ファイルはアップロードによってサーバー側でブロックされます。

于 2013-02-26T18:42:37.270 に答える