метод streamDownload возвращает пустой ответ, файл не загружается - PullRequest
0 голосов
/ 24 января 2019

В моем контроллере есть следующий метод, который запускается при вызове маршрута '/ download /' с POST:

public function download(Request $request) {
    return response()->streamDownload( function () use ( $request ) {
        return $request->content;
    }, 'page.html' );
}

Я звоню по этому маршруту через AJAX из моего приложения javascript.

Проблема в том, что загрузка файла не работает. И ответ пуст. Тем не менее, код ответа 200, без ошибок ...

Что не так?
спасибо

1 Ответ

0 голосов
/ 08 марта 2019

ОК, я делал это неправильно.Вот мое решение:

// @param url : the url of the file on server
function downloadHTML (url) {
    url = new URL(url);
    return axios({
        // I've created a GET API route on my server using the pathname of the file url, which returns the content of the file
        url: url.origin + '/api' + url.pathname,
        method: 'GET',
        responseType: 'blob',
    }).then((response) => {
        const url = window.URL.createObjectURL(new Blob([response.data]));
        const link = document.createElement('a');
        link.href = url;
        link.setAttribute('download', 'file.pdf'); //or any other extension
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...