Генерация и загрузка JSON-файла всегда возвращают HTML-файл - PullRequest
0 голосов
/ 27 апреля 2018

Я генерирую файл JSON с PHP и через заголовки загружаю его, как только генерация файла завершена. Когда я запускаю приведенный ниже код, я смотрю в свою папку «downloads», и расширение загруженного файла - не «.json», а «.json.html».

Как сделать так, чтобы расширение файла оставалось ".json"?

Вот мой код:

foreach($tickets as $ticket)
{
    $data['tickets'][] = [
        'tickets_id' => $ticket->ticket_id,
        'name' => strtolower($ticket->name),
        'email' => strtolower($ticket->email),
        'status' => $ticket->status
    ];
}

header('Content-Type: application/json');
header('Content-Disposition: attachment; filename=db.json');
header('Pragma: no-cache');
echo json_encode($data);

Загруженный файл: => db.json.html , а не db.json

Редактировать: полный код внизу

public function ticketsExportJSON($id)
{
    $tickets = Ticket::where('event_id', $id)->with('event')->get();

    $data = [];
    $i = 0;

    foreach($tickets as $ticket)
    {
        $i++;
        if($i == 1)
        {
            $data = [
                'event' => $ticket->event->title,
                'date' => $ticket->event->event_date
            ];
        }
        else
        {
            $data['tickets'][] = [
                'tickets_id' => $ticket->ticket_id,
                'name' => strtolower($ticket->name),
                'email' => strtolower($ticket->email),
                'status' => $ticket->status
            ];
        }
    }

    header('Content-Type: application/json');
    header('Content-Disposition: attachment; filename=db.json');
    header('Pragma: no-cache');
    echo json_encode($data);
}

С маршрутом: / download / json для вызова функции ticketsExportJSON.

1 Ответ

0 голосов
/ 26 июля 2018

Я думаю, что вы забыли добавить exit(); в конце вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...