Задать вопрос

Как с помощью fetch получить xlsx?

Как получить xlsx файл используя fetch api?
На сервере файл отдается вот так:
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Disposition: attachment; filename=".$outputFileName);
header("Content-Transfer-Encoding: binary");
readfile($outputFileName);

Тут файл открывается - все корректно

сам запрос к серверу вот такой

form_douwload.addEventListener('submit',async function  (e){
    e.preventDefault();
    let data = new FormData();
    data.append('action','downloadxls');

    const response = await fetch(ajaxurl,
        {
            method: 'POST',
            body: data,
        }
    );
    let blob = await response.blob();
    var url = window.URL.createObjectURL(blob);
    var a = document.createElement('a');
    a.href = url;
    a.download = "export.xlsx";
    document.body.appendChild(a); // we need to append the element to the dom -> otherwise it will not work in firefox
    a.click();
    a.remove();  //afterwards we remove the element again
})

файл скачивается но при попытке открыть файл exel выдает ошибку
o47mP8OS51A.jpg?size=1264x305&quality=96&sign=4fdff397d590fbbde01593ad17c71bc8&type=album
  • Вопрос задан
  • 539 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
dima9595
@dima9595
Junior PHP
Попробуйте тип файла .xls сохранять.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы