Sto utilizzando il plug-in di caricamento del file blueimp (la versione di base) per implementare il caricamento multifile. Sto cercando di implementare funzionalità per consentire all'utente di rimuovere i file in coda per il caricamento. Non riesco a capire come accedere alla matrice di file in modo appropriato. Ogni volta nell'aggiunta del callback, l'indice è 0 e la lunghezza dell'array dei file è 1 (contiene solo il file che l'utente ha fatto clic per rimuovere). Sto aggiungendo un link per ogni file in coda a un div, che è cliccabile e dovrebbe rimuovere il file se cliccato.Elimina i file a livello di codice con jquery fileupload basic
Il mio pensiero era quello di creare un collegamento rimuovi con l'indice del file e rimuoverlo dall'array, ma a causa del problema indicato sopra, l'indice non è mai corretto. Ho anche provato con il nome del file, ma il nome del file nel callback "on" è sempre il primo file che è stato selezionato per il caricamento, alcuni ambiti di chiusura che devo capire.
Come rimuovere i file dalla coda di caricamento a livello di programmazione?
HTML:
<div id="fileBrowserWrapper">
<form id="myForm" action="#" method="post" enctype="multipart/form-data">
<input id="uploadDocBrowse" type="file" name="files[]" multiple/>
</form>
</div>
<div id="inputFilesBox"></div>
<div id="uploadFilesBox"></div>
E il file di caricamento JavaScript:
$('#myForm').fileupload({
url: "/SomeHandler",
dataType: 'html',
autoUpload: false,
singleFileUploads: false,
replaceFileInput: false,
add: function (e, data) {
console.log("Number of files: " + data.files.length);
$.each(data.files, function (index, file) {
$('#uploadFilesBox').append("<div class='uploadBox' id='fileDiv_" + file.name + "'><div class='leftEle'><a href='#' id='link_" + index + "' class='removeFile'>Remove</a></div><div class='midEle'>" + file.name + "</div></div>")
.on('click', { filename: file.name, files: data.files }, function(event) {
var uploadFilesBox = $("#uploadFilesBox");
var remDiv = $("#fileDiv_" + event.data.filename);
remDiv.remove();
event.data.files.splice(0, 1);
}
});
});
data.context = $('#myButton')
.click(function() {
data.submit();
});
});
Ho risolto questo, si prega di vedere la parte superiore della mia domanda originale. – Furynation
Si prega di inviare la soluzione come risposta. Ecco dove i futuri lettori cercheranno la soluzione. Includerlo nella domanda per lo più sembra poco chiaro. Grazie! :) –
Devo aspettare 8 ore prima di poter rispondere alla mia stessa domanda :) – Furynation