Как определить тип файла, находящегося в каталоге?

112
15 августа 2019, 15:00

Получаю массив и отображаю его:

$.post('/foronce.php', { "id": msg }, function( data ) {
    data = (typeof data === 'string') ? JSON.parse(data) : data;
...
// вывод рисунка
$('#tech').append("<img src='/upload/" + data['name'] + "'>");
...
});

Data['name'] хранит в себе название файла. Файл может быть любым. Необязательно это может быть картинка. Может быть и exe, и mp3, и txt.

Мне нужно, чтобы в зависимости от типа файла, загружалась определённая картинка, а если этот файл и есть изображение, то срабатывало то, что сейчас есть "<img src='/upload/" + data['name'] + "'>.

Как можно определить тип файла data['name'] ?

К примеру, можно сделать .split('.').pop() и для каждого из вариантов расширений (!) файлов прописать условие. Мне кажется, что этот вариант довольно плохой, учитывая, что количество расширений уйма. Как получить именно тип файла? Чтобы можно было потом работать с условием: "if (image) {...} else if (text) {...}"

Я знаю, что этим должен заниматься mime, но google мне предлагает варианты только тогда, когда файл загружен в input. Что мне делать, когда файл в каталоге?

Кстати, по какой-то причине mime() у меня возвращает "is not a function"

jsfiddle.net/7jf8tchw хотя должен работать иначе, наверное http://helpcenter.epages.com/Doc/ver_6_13_1/epages/jQuery/api-jQuery.mime.html

READ ALSO
Вынесение констант actions в отдельный файл

Вынесение констант actions в отдельный файл

Разбираю тему модульности в vuex на примере приложения с аутентификацией (статья, репозиторий на гитхабе), переписываю с нуля по-своему, сравниваю...

122
TypeScript не поддерживает import js файлов?

TypeScript не поддерживает import js файлов?

Вот такая вот штука - воспользовался TypeScript-Babel-Starter, Все шло хорошо, пока не появилась необходимость заimportмить js класс

108
Не срабатывает касание с первого раза на телефоне

Не срабатывает касание с первого раза на телефоне

Не сайте меню открывается при клике и наведении, за это отвечает этот код, на компе всё работает, на телефоне не срабатывает при первом касании,...

101
В компоненте react не обновляются input

В компоненте react не обновляются input

Реализую CRUD приложениеДобавление и удаление реализовал

129