Можно ли получить тип файла перед загрузкой через JavaScript? - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь создать расширение, которое сообщит пользователю тип файла перед загрузкой через всплывающее окно. Есть ли в JavaScript какой-либо метод для анализа типа файла перед его загрузкой?

1 Ответ

0 голосов
/ 03 июня 2019

Вы можете получить тип файла, проверив заголовок Content-type при выполнении запроса HEAD.

Это не будет загружать контент.Например, вы можете использовать XMLHttpRequest:

getMimeType = url => {
  const request = new XMLHttpRequest();
  request.open('HEAD', url);
  const promise = new Promise(resolve => {
    request.onreadystatechange = () => {
      if (request.readyState == request.DONE) {
        resolve(
          request
            .getAllResponseHeaders()
            .split('\n')
            .find(header => header.toLowerCase().startsWith('content-type'))
            .split(':')[1]
            .trim(),
        );
      }
    };
  });

  request.send();
  return promise;
};

// Random ad on this web site, prints image/jpeg
getMimeType('https://tpc.googlesyndication.com/simgad/18296964107941472197').then(console.log);

Возможно, вы захотите добавить обработку ошибок и к коду

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...