Używam wtyczki do wysyłania plików blueimp (wersja podstawowa) do implementacji przesyłania plików w wielu plikach. Próbuję wdrożyć funkcjonalność, aby umożliwić użytkownikowi usuwanie oczekujących plików do przesłania. Nie mogę się dowiedzieć, jak poprawnie uzyskać dostęp do tablicy plików. Za każdym razem w wywołaniu zwrotnym indeks wynosi 0, a długość tablicy plików wynosi 1 (zawiera tylko plik, który użytkownik kliknął, aby usunąć). Dodaję łącze dla każdego pliku w kolejce do elementu div, który można kliknąć i powinien usunąć plik po kliknięciu.Skasuj pliki programowo za pomocą jquery fileupload basic
Moja myśl polegała na utworzeniu linku do usunięcia z indeksem pliku i usunięciu go z tablicy, ale z powodu opisanego powyżej problemu indeks nigdy nie jest poprawny. Próbowałem również przez nazwę pliku, ale nazwa pliku w wywołaniu zwrotnym "on" jest zawsze pierwszym plikiem, który został wybrany do przesłania - niektóre zakresy muszą być zrozumiałe.
Jak programowo usunąć pliki z kolejki wysyłania?
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>
a plik przesłać 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();
});
});
Rozwiązałem to, proszę zobaczyć na górze mojego pierwotnego pytania. – Furynation
Proszę zaksięgować rozwiązanie jako odpowiedź. To tam przyszli czytelnicy będą szukać rozwiązania. Włączenie go do pytania jest po prostu kłopotliwe. Dzięki! :) –
Muszę poczekać 8 godzin, aż będę mógł odpowiedzieć na moje własne pytanie :) – Furynation