Вопрос

У меня есть следующая функция, чтобы заставить файл загрузить:

static public function download($file, $options=array()) {
    $content = (isset($options['content'])) ? $options['content'] : '';
    $contentType = (isset($options['contentType'])) ? $options['contentType'] : '';
    header('Cache-Control: public');
    header('Content-Description: File Transfer');
    header('Content-Disposition: attachment; filename='.File::filename($file));
    header('Content-Type: '.$contentType);
    header('Content-Transfer-Encoding: binary');
    if ($content!='') {
        echo $content;
    } else {
        readfile($file);
    }
}

Я отправляю PDF -файл и ContentType = "Application/PDF". Проблема в том, что когда я пытаюсь открыть загруженный файл PDF, она говорит: «Была ошибка, открывая этот документ. Файл может быть поврежден». Странно, потому что я могу открыть исходный файл, и они выглядят точно так же (имя файла, размер и т. Д.)

Это было полезно?

Решение

Убедитесь, что нет вывода до выполнения этой функции, и для хорошей меры используйте exit построить в конце этой функции :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top