Скачать файл используя AJAX

194
09 марта 2018, 16:04

На сервере существует директория с правами 700. В ней содержится PDF документ. Нужно скачать этот документ. Раньше использовал HTML-форму, в PHP readfile() и все отлично работало.

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="'.$_POST['request'].'.pdf"');
readfile($file);

Сейчас же я отправляю POST запрос используя AJAX и из-за столкнулся с проблемой.

$('#d_button').click(function () {
    var form_data = new FormData();
    form_data.append('u_class', $('#u_class').val());
    form_data.append('request', $('#request').val());
    $.ajax({
        url: "http://example.ru/download.php",
        dataType: 'json',
        data: form_data,
        cache: false,
        contentType: false,
        processData: false,
        type: 'POST',
        success: function (data) {               
            console.log(data);
        },
        error: function (data) {
            console.log(data);
        }
    });
});

Файл, который нужно скачать, не должен быть всем доступен, то есть использование прямой ссылки на файл недопустимо.

Работать должно так: если у пользователя достаточно прав (уровень привилегий считывается из базы данных), сервер отдает ему файл.

READ ALSO
Пагинация laravel

Пагинация laravel

Добрый день, есть связь с таблицей через модельКак сделать навигацию на на странице, чтобы выводило по 5 полей

462
Помогите найти синтаксическую ошибку [требует правки]

Помогите найти синтаксическую ошибку [требует правки]

Не могу найти синтаксическую ошибку, не могу понять в чем дело, вроде код ввел правильно

172
Продублирую свой вопрос про $ знак [требует правки]

Продублирую свой вопрос про $ знак [требует правки]

Да, и искал, но ответа не нашелЧто означает вот эта $module, $this, запись

158
Почему не получается подружить php и Arduino?

Почему не получается подружить php и Arduino?

Нужно что бы когда вызван php загоралась лампочка! Код PHP:

210