JS - перетащить файлы и получить тип файла не удается

0

Я хочу получить тип файлов вложенных данных, но ERROR выбрасывается в консоль:

JSFiddle

Ошибка:

Uncaught TypeError: Cannot read property 'type' of undefined 

JS:

var reader = new FileReader();

$(".paste").on('drop', function( e ) {

    e.stopPropagation();
    e.preventDefault();

    var file = e.target.files || (e.dataTransfer && e.dataTransfer.files);

    var legalTypes = ["image/png", "image/jpeg", "image/gif"];

    if(legalTypes.indexOf(file.type) === -1) {

        alert("Please only upload image files!");
        return false;
    }
  • 0
    У вас нет ввода типа файла.
  • 0
    Это то, что вы хотите достичь JSFiddle
Показать ещё 1 комментарий
Теги:

1 ответ

0

использовать event.originalEvent, чтобы получить dataTransfer объект.

Также объект files будет содержать массив файлов. поэтому вам нужно пройти через них или использовать первый элемент.

окончательный код будет:

$(document).ready(function () {

   var reader = new FileReader();

$(".paste").on('drop', function( e ) {

    e.stopPropagation();
    e.preventDefault();

    var files = e.originalEvent.target.files || (e.originalEvent.dataTransfer && e.originalEvent.dataTransfer.files);

    var legalTypes = ["image/png", "image/jpeg", "image/gif"];

    for( i in files ) {

        if(legalTypes.indexOf(files[i].type) < 0 ) {

            alert("Please only upload image files!");
            return false;
        }
    }

    });

   });
  • 0
    Не работает в скрипке, пробовал?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню