mr-volevach
@mr-volevach
web-developer

Как отдать файл на скачивание с другого домена?

Добрый день, не могу разобраться как отдать файл на скачивание с другого домена.
Есть урл в параметре которого передается ссылка на файл. При переходе по ссылке хочу отдавать файл на скачивание
Написал следующую функцию
function file_force_download($file) {
    if ($fd = fopen($file, "r")) {
        $fsize = filesize($file); 
        $path_parts = pathinfo($file); 
    
        // заставляем браузер показать окно сохранения файла
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename=' . $path_parts['basename']);
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize($fsize));
        // читаем файл и отправляем его пользователю
        while (!feof($fd)) {
            print fread($fd, 2048);
        }
        fclose($fd);
        exit;
    }
}

Проблема в том что файл отдает, но почему то его вес 0 байт, такое впечатление что нет тела. Помогите разобраться в чем проблема. Заранее благодарен.
  • Вопрос задан
  • 236 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы