¿Cómo puedo restablecer un archivo blueimp jQuery fileupload?

La esencia: ¿Cómo puedo restablecer un plugin de blueuware jQuery fileupload para que piense que ya no se han cargado archivos?

Mi escenarioTengo un formulario de carga que solo permite cargar un archivo.Una vez que se carga ese archivo, se analiza. En este punto, el usuario tiene la opción de hacer clic en el botón "cancelar", donde reinicio el resto de mi modelo de vista.Cuando el usuario hace clic en cancelar, me gustaría restablecer el número de archivos que el usuario ha cargado, ya que esencialmente están empezando de nuevo.Todavía quiero que se aplique el máximo de un archivo después del reinicio.Que pasa actualmenteCargar un archivoHaga clic en el botón Cancelar, todo se restablece (es decir, reinicio el control de carga del archivo)Intento cargar un archivo y todavía me dicen que se ha alcanzado el número máximo de archivos.Lo que he intentado

Intenté llamar a fileupload ('destruir') y luego reinicializarlo, pero eso pareció no tener ningún resultado (esperaba que la destrucción también destruyera el seguimiento de la instancia).

Mis preguntas):¿Cuál es la mejor manera de destruir / reiniciar / reiniciar el control de carga como si se estuviera iniciando desde cero?Si no hay ninguno, ¿hay alguna forma de hacer que blueimp piense mediante programación que no se han cargado archivos cero después de que uno ya lo haya hecho, para restablecerlo de manera efectiva? ¡Gracias de antemano por cualquier ayuda que puede dar!Una nota sobre la versión:

Para su información, estoy en v8.8.1 - Preferiría no actualizar porque un colega cambió parte del código de una manera específica - ugh. Planeamos eliminar esta personalización y actualización, pero en una fecha programada. Si tengo que actualizar para resolver esto, no dude en hacérmelo saber porque es completamente justo.

Actualización: algún código

El primer control de carga de archivos en la página:

<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>

El segundo control de carga de archivos en la página:

<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>

Puedo borrar el primer control usando:

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

presumiblemente porque el archivo ya se ha cargado en ese punto (lo que está bien).

Sin embargo, esto no funciona para la segunda forma. Yo he tratado:

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

Esto hace que los elementos desaparezcan de la página, pero vuelven a aparecer cuando se agrega un archivo adicional.

También he intentado$("#detailsFileUploadForm").fileupload('destroy') sin éxito (presumiblemente porque no maneja estas funciones y se trata más de enlaces).

Respuestas a la pregunta(2)

Su respuesta a la pregunta