PHP Force Скачать файл поврежден - PullRequest
0 голосов
/ 24 июля 2010

Я использую этот скрипт 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 ]

0 голосов
/ 31 июля 2010

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

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

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

$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]");
}
0 голосов
/ 24 июля 2010

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

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);

Спасибо

...