jquery fileupload не позволяет выбирать файлы с разными расширениями - PullRequest
0 голосов
/ 27 декабря 2018

Как я могу убедиться, что никакие файлы не загружены на мой сервер, если они имеют разные расширения, как я могу сделать это с помощью jquery fileupload, чтобы, например, его нельзя было выбрать: pdf, tif одновременно?

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Вы можете подключиться к событию изменения fileupload, чтобы проверить количество типов во входных данных:

$('#fileupload').fileupload({
    change: function (e, data) {
        var fileTypes = []; // Array for file types
        $.each(data.files, function (index, file) {

            var thisExtension = file.name.split('.').pop(); // Get the extension

            if (fileTypes.indexOf(thisExtension) == -1){ // We have a new type
              if (fileTypes.length > 0){
                // Handle invalidation however works best for you
                alert('TWO DIFFERENT FILE TYPES!');
                // Maybe clear the input if you want to be aggressive?
                $("#fileupload").find(".files").empty();

              } else {
                // It's okay, this is the first type
                fileTypes.push(thisExtension);
              }
            }
        });
    }
});

Но это предполагает, что ваши пользователи доброжелательны и не пытаются обмануть пользовательский интерфейс, переименовывая расширения файлов.,Если вы хотите быть на 100% уверены, вам нужно проверить сторону файлового сервера.

0 голосов
/ 27 декабря 2018

Вот так:

$(function(){
  $("input[type='submit']").click(function(){
      var $fileUpload = $("input[type='file']");
      if (parseInt($fileUpload.get(0).files.length)>2){
       alert("You can only upload a maximum of 2 files");
      }
  });
});​    

Но вам нужно заменить свойство "length" на "values" и оценить расширение.

...