通过JavaScript下载文件之前是否可以获取文件类型?

时间:2019-06-03 14:58:47

标签: javascript google-chrome google-chrome-extension

我正在尝试创建一个扩展名,该扩展名将在通过弹出窗口下载文件之前告诉用户文件类型.JavaScript中是否有任何方法可以在下载文件之前分析文件类型?

1 个答案:

答案 0 :(得分:0)

执行HEAD请求时,可以通过检查Content-type标头来获取文件类型。

那将不会下载内容。例如,您可以使用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);

您可能还希望在代码中添加错误处理