Jak mogę zresetować wtyczkę do pobierania plików jQuery blueimp?

Istota: w jaki sposób mogę zresetować wtyczkę do pobierania plików blueQQ jQuery, aby sądzić, że żadne pliki nie zostały już przesłane?

Mój scenariuszMam formularz do przesyłania, który pozwala na przesłanie tylko jednego pliku.Po przesłaniu pliku jest on analizowany. W tym momencie użytkownik ma możliwość kliknięcia przycisku „anuluj”, gdzie resetuję resztę mojego modelu widoku.Gdy użytkownik kliknie przycisk Anuluj, chciałbym zresetować liczbę plików przesłanych przez użytkownika, ponieważ zasadniczo zaczynają one świecić.Nadal chcę, aby po zresetowaniu zastosować maksymalnie jeden plik.Co dzieje się obecniePrześlij plikKliknij przycisk Anuluj, wszystko zostanie zresetowane (tzn. Ponownie zainicjalizuję kontrolę przesyłania plików)Spróbuj przesłać plik, a nadal otrzymuję informację o liczbie plików max.Co próbowałem

Próbowałem wywołać plik fileload („destroy”), a następnie ponownie zainicjalizować, ale wydawało się, że nie przyniosło to rezultatu (miałem nadzieję, że zniszczenie zniszczy również śledzenie instancji).

Moje pytania):Jaki jest najlepszy sposób na zniszczenie / ponowne zainicjowanie / zresetowanie kontroli przesyłania, tak jakby była uruchamiana od podstaw?Jeśli ich nie ma, czy jest jakiś sposób, aby programowo zmusić blueimp do myślenia, że ​​po przesłaniu już jednego pliku załadowano zero, aby skutecznie go zresetować? Z góry dziękuję za wszelką pomoc, jaką możesz dać!Uwaga dotycząca wersji:

FYI, jestem na 8.8.1 - wolałbym nie aktualizować, ponieważ kolega zmienił część kodu w określony sposób - ugh. Planujemy usunąć to dostosowanie i uaktualnienie, ale w zaplanowanym terminie. Jeśli muszę zaktualizować, aby rozwiązać ten problem, daj mi znać, ponieważ jest to całkowicie sprawiedliwe.

Aktualizacja: jakiś kod

Pierwsza kontrolka przesyłania plików na stronie:

<form id="summaryFileUploadForm" action="/api/InvoiceDetailsFile/PostForProcessing" method="POST"
    enctype="multipart/form-data" data-bind="disableFileUpload: InvoiceHasSummaryDocument() || (!InvoiceDataIsFilledIn())">

    <div class="fileupload-buttonbar">
        <div class="fileupload-buttons">

            <!-- The fileinput-button span is used to style the file input field as button -->
            <span class="fileinput-button">
                <span>Add files...</span>
                <input id="file" type="file" name="file" />
            </span>

            <span class="fileupload-loading"></span>
        </div>
        <!-- The global progress information -->
        <div class="fileupload-progress fade" style="display: none">
            <!-- The global progress bar -->
            <div class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100"></div>
            <!-- The extended global progress information -->
            <div class="progress-extended">&nbsp;</div>
        </div>
    </div>
    <div data-bind="fadeVisible: InvoiceHasSummaryDocument()">
        <span class="ui-icon ui-icon-check float-left"></span><span>A summary document has been uploaded.</span>
    </div>
    <span data-bind="fadeVisible: (!InvoiceDataIsFilledIn())">Please fill out invoice information before uploading a file.</span>
    <!-- The table listing the files available for upload/download -->
    <table role="presentation">
        <tbody class="files" id="Tbody1"></tbody>
    </table>

    <script id="summaryFileDownloadTemplate" type="text/x-tmpl">

    </script>
</form>

Druga kontrola przesyłania plików na stronie:

<form id="detailsFileUploadForm" action="/api/InvoiceDetailsFile/PostForProcessing" method="POST"
    enctype="multipart/form-data" data-bind="disableFileUpload: Invoice().DetailItems().length > 0 || (!InvoiceHasSummaryDocument())">

    <div class="fileupload-buttonbar">
        <div class="fileupload-buttons">

            <!-- The fileinput-button span is used to style the file input field as button -->
            <span class="fileinput-button">
                <span>Add files...</span>
                <input id="file" type="file" name="file" />
            </span>

            <span class="fileupload-loading"></span>
        </div>
        <!-- The global progress information -->
        <div class="fileupload-progress fade" style="display: none">
            <!-- The global progress bar -->
            <div class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100"></div>
            <!-- The extended global progress information -->
            <div class="progress-extended">&nbsp;</div>
        </div>
    </div>
    <span><strong>NOTE: </strong>Only Excel 2007+ (.xlsx) files are accepted. <a href="<%= ResolveUrl("~/asset/xlsx/Ligado_InvoiceUploadTemplate_Standard.xlsx") %>" target="_blank" id="A1">Need a blank Invoice Upload template?</a><br />
    </span>
    <span data-bind="fadeVisible: Invoice().DetailItems().length > 0">Invoice details have been uploaded.</span>
    <span data-bind="fadeVisible: (!InvoiceHasSummaryDocument())">Please upload a summary file prior to uploading a details file.</span>

    <!-- The table listing the files available for upload/download -->
    <table role="presentation">
        <tbody class="files" id="fileList"></tbody>
    </table>
    <script id="template-upload" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
    <tr class="template-upload fade" style="display:none">
        <td>
            <span class="preview"></span>
        </td>
        <td>
            <p class="name">{%=file.name%}</p>
            {% if (file.error) { %}
                <div><span class="error">Error:</span> {%=file.error%}</div>
            {% } %}
        </td>
        <td>
            <p class="size">{%=o.formatFileSize(file.size)%}</p>
            {% if (!o.files.error) { %}
                <div class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"></div>
            {% } %}
        </td>
        <td>
            {% if (!o.files.error && !i && !o.options.autoUpload) { %}
                <button class="start">Start</button>
            {% } %}
            {% if (!i) { %}
                <button class="cancel">Cancel</button>
            {% } %}
        </td>
    </tr>
{% } %}
    </script>

    <script id="template-download" type="text/x-tmpl">

    </script>
</form>

Jestem w stanie usunąć pierwszą kontrolę za pomocą:

    $("tbody.files").empty();

przypuszczalnie dlatego, że plik został już przesłany w tym momencie (co jest w porządku).

Jednak to nie działa w przypadku drugiego formularza. Próbowałem:

    $("#detailsFileUploadForm").find('.cancel').click();

Sprawia to, że elementy znikają ze strony, ale pojawiają się ponownie po dodaniu dodatkowego pliku.

Próbowałem też$("#detailsFileUploadForm").fileupload('destroy') bez powodzenia (przypuszczalnie dlatego, że nie obsługuje tych funkcji i dotyczy raczej powiązań).

questionAnswers(2)

yourAnswerToTheQuestion