Чтобы извлечь имя файла из заголовка Content-Disposition в JavaScript, вы можете использовать различные методы. Вот несколько подходов, которые вы можете рассмотреть:
-
Регулярные выражения.
Вы можете использовать регулярные выражения для извлечения имени файла из заголовка 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);
-
Манипулирование строками.
Другой метод — использовать функции манипулирования строками, такие как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);
-
Использование 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();