Как удалить загруженный файл из массива Javascript?

Пользуясь ссылкой здесь...Загрузка нескольких файлов - со ссылкой 'remove file' Я смог в основном заставить это работать. Однако....It удаляет загруженный файл с экрана... но не удаляет его из массива, так что он все еще загружается. Я играл с этим все утро. Я использую Django.... Может ли быть такое, что getlist не очищается при удалении? Заранее спасибо за любые мысли...

Javascript...

  $(document).ready(function (){

  $.fn.fileUploader = function (filesToUpload) {
      this.closest(".files").change(function (evt) {

      for (var i = 0; i < evt.target.files.length; i++) {
          filesToUpload.push(evt.target.files[i]);
      };
      var output = [];

      for (var i = 0, f; f = evt.target.files[i]; i++) {
        var removeLink = "<a class=\"removeFile\" href=\"#\" data-fileid=\"" + i + "\">Remove</a>";

                output.push("<li><strong>", escape(f.name), "</strong> - ",
                    f.size, " bytes. &nbsp; &nbsp; ", removeLink, "</li> ");
            }

            $(this).children(".fileList")
                .append(output.join(""));
            });
      };

      var filesToUpload = [];

      $(document).on("click",".removeFile", function(e){
          e.preventDefault();
          var fileName = $(this).parent().children("strong").text();

          for(i = 0; i < filesToUpload.length; ++ i){
              if(filesToUpload[i].name == fileName){
                  filesToUpload.splice(i, 1);
              }
        }
          $(this).parent().remove();
      });

      $("#files1").fileUploader(filesToUpload);
      $("#files2").fileUploader(filesToUpload);

      $("#uploadBtn").click(function (e) {
          e.preventDefault();
      });

    });

HTML....

<div class="row files" id="files1">
    <span class="">
        <input type="file" name="files1" multiple />
    </span>
        <br />
        <ul class="fileList"></ul>
</div> 

Я сократил часть HTML... я использовал оригинальную версию в течение некоторого времени, но это, казалось, не имело никакого значения. В оригинальном SO есть ссылка на то, что он не работает должным образом, но потом кто-то указал, что обновил код... но я все еще не могу заставить его удалить, чтобы предотвратить загрузку. На экране все нормально, но когда я отправляю форму, удаленные файлы все равно загружаются.

Вот переопределение POST для Django в CreateView, основанном на классе...

def post(self, request, *args, **kwargs):
    if "cancel" in request.POST:
        return HttpResponseRedirect(reverse('Procedures:procedure_main_menu'))
    else:
        self.object = None
        user = request.user
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        file_form = NewProcedureFilesForm(request.POST, request.FILES)
        files = request.FILES.getlist('files1') #field name in model
        if form.is_valid() and file_form.is_valid():
            procedure_instance = form.save(commit=False)
            procedure_instance.user = user
            procedure_instance.save()
            for f in files:
                procedure_file_instance = NewProcedureFiles(attachments=f, new_procedure=procedure_instance)
                procedure_file_instance.save()
            return self.form_valid(form)
        else:
            form_class = self.get_form_class()
            form = self.get_form(form_class)
            file_form = NewProcedureFilesForm()
            return self.form_invalid(form)
Вернуться на верх