0

FineUploader を使用して複数のファイルをアップロードしています。アップロード プロセスを停止し、アップロードされたすべてのファイルを削除するキャンセル ボタンがあります。各ファイルで [削除] をクリックすると問題なく動作しますが、しばらく前から (3.9 への更新時かそれ以前かは不明)、空白のアラートと「削除に失敗しました」というメッセージが表示されますが、ファイルはサーバーから削除されるため、サーブレットは正常に動作しています。

ファイルを削除する私のコードは次のようなものです:

function clearFiles() {
    var array = document.getElementsByClassName("qq-upload-delete");
    for (var i = 0; i < array.length; i++) {
        array[i].style="display: inline;";
        array[i].click();
    }
}

問題が確認メッセージを待たずにファイルを削除しようとしている可能性があるかどうかを推測しています(そのため、前のメッセージからの応答を取得する前に次のメッセージを削除しています)または他の何かですが、空白を説明することはできませんアラート。これに関するドキュメントや例は見つかりませんでした。何か案は?

コンソール ログ:

Uncaught ReferenceError: Modernizr is not defined. 
Uncaught Error: Element not found drop. 
[FineUploader 3.9.0-3] DELETE request for 0 has failed - response code 0 
[FineUploader 3.9.0-3] Delete request for 'test File.pdf' has failed. id: test File.pdf, fileName: Delete request failed with response code 0, reason: [Object XMLHttpRequest]

サーバーコード:

public void doDelete(final HttpServletRequest req, final HttpServletResponse resp) throws IOException {
    String uuid = req.getPathInfo().replaceAll("/", "");
    FileUtils.deleteUploadedFile(uuid);
    resp.setStatus(successResponseCode);
}

FineUploader の定義

myUploader = new qq.FineUploader({
    element: $('#file-uploader')[0],
    multiple: false,
    autoUpload: true,
    deleteFile: {enabled: true, forceConfirm: false, endpoint: '/upload-portlet/fineupload/receiver'},
...
});

imageUploader = new qq.FineUploader({
    element: $('#image-uploader')[0],
    multiple: false,
    autoUpload: true,
    deleteFile: {enabled: true, forceConfirm: false, endpoint: '/upload-portlet/fineupload/receiver'},
...
});

新しい clearFiles メソッド

function clearFiles() {
    if (myUploader && myUploader.getUploads()) {
        var array = myUploader.getUploads();
        for (var i = 0; i < array.length; i++) {
            myUploader.deleteFile(array[i].id);
        }
    }
    if (imageUploader && imageUploader.getUploads()) {
        var array = imageUploader.getUploads();
        for (var i = 0; i < array.length; i++) {
            imageUploader .deleteFile(array[i].id);
        }
    }
}

これは imageUploader では機能しませんが、myUploader では機能します。理由はありますか?

4

1 に答える 1

0

機能に影響する onDeleteComplete に問題がありました。それを修正すると、元の clearFiles が機能しました。

助けてくれたFineUploaderチームに感謝します!!

于 2013-09-24T20:41:54.343 に答える