Извлечение имени файла из заголовка Content-Disposition в JavaScript

Чтобы извлечь имя файла из заголовка Content-Disposition в JavaScript, вы можете использовать различные методы. Вот несколько подходов, которые вы можете рассмотреть:

  1. Регулярные выражения.
    Вы можете использовать регулярные выражения для извлечения имени файла из заголовка Content-Disposition. Вот пример:

    const header = 'attachment; filename="example.txt"';
    const filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
    const matches = header.match(filenameRegex);
    const filename = matches[1].replace(/['"]/g, '');
    console.log(filename);
  2. Манипулирование строками.
    Другой метод — использовать функции манипулирования строками, такие как split()и substring(), для извлечения имени файла. Вот пример:

    const header = 'attachment; filename="example.txt"';
    const startIndex = header.indexOf('filename=') + 10; // Add 10 to exclude 'filename="'
    const endIndex = header.lastIndexOf('"');
    const filename = header.substring(startIndex, endIndex);
    console.log(filename);
  3. Использование API Content-Disposition:
    Если вы работаете с API Fetch или XMLHttpRequest, вы можете напрямую получить доступ к заголовку Content-Disposition с помощью метода getResponseHeader().. Вот пример:

    const xhr = new XMLHttpRequest();
    xhr.open('GET', 'example.com/file', true);
    xhr.onreadystatechange = function () {
     if (xhr.readyState === 4 && xhr.status === 200) {
       const contentDisposition = xhr.getResponseHeader('Content-Disposition');
       const filename = contentDisposition.split('filename=')[1].replace(/['"]/g, '');
       console.log(filename);
     }
    };
    xhr.send();