PHP Force Скачать файл поврежден

Я использую этот скрипт PHP для загрузки файла:

$status=stripos($_SERVER['HTTP_REFERER'],'servername');
if($status===false)
{
    header('Location:http://xyz.com);
}
else
{
    header('Content-disposition: attachment; filename=XXX.pdf');
    header('Content-type: application/pdf');
    readfile('http://www.xyz.com/Downloads/XXX.pdf);
}

Однако, когда я загружаю файл в любом браузере, он говорит, что он поврежден.

Пожалуйста помоги!

2 ответа

Решение

Но этот код работает нормально

header("Content-type: application/pdf");
header('Content-Disposition: attachment; filename="sample.pdf"');
readfile('/var/www/sample.pdf');

Пожалуйста, измените имя файла =XXX.pdf на имя файла ="XXX.pdf" и проверьте.

Ой, извини!! Вы должны указать базовый путь или относительный патч к контенту, это означает, что readfile('/var/www/Downloads/XXX.pdf); скорее readfile('http://www.xyz.com/Downloads/XXX.pdf);

Спасибо

Я нашел решение, которым хотел бы поделиться, в моем коде C# [при нажатии на кнопку загрузки]-

Response.Redirect("http://myserver.com/download.php?file=DownloadItem/" + fileName + "&type=" + Common.MimeType(fileName) + "&disp=" + fileName + "");    

В моем файле PHP [ http://myserver.com/download.php%5D

$status=stripos($_SERVER['HTTP_REFERER'],'myserver.com');<br>
if($status===false)
{
header('Location:http://myserver.com/ErrorPage');<br>
}
else
{
header("Content-disposition:attachment;filename= $_GET[disp]");
header("Content-type: $_GET[type]");
readfile("$_GET[file]");
}
Другие вопросы по тегам