fopen "Не удалось открыть поток: сбой HTTP-запроса!"иногда - PullRequest
0 голосов
/ 29 мая 2018

Итак, я занимаюсь обработкой и туннелированием PHP Corss-Origin.На удаленном сервере у меня есть PHP-компиляция некоторых файлов, которая может занять некоторое время в зависимости от запрашиваемых файлов.С другого сервера я делаю следующее:

$file = "http://".$remote."/remote.php?prj=".$getprj;
$filename = substr($file,strrpos($file,"/")+1);
$fp = fopen($file, "r") or die("DEAD");
if(!headers_sent())
{
// http://php.net/manual/en/function.header.php#86554
//  header("Content-Disposition: attachment; filename=".$filename);
header("Content-Disposition: attachment; "
.sprintf('filename="%s"; ', rawurlencode($filename))
.sprintf("filename*=utf-8''%s", rawurlencode($filename)));
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");
//  header("Content-Length: " . filesize($filename));
}
flush(); // this doesn't really matter.

while (!feof($fp))
{
    echo fread($fp, 65536);
    flush(); // this is essential for large downloads
}
fclose($fp);

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

Warning: fopen(http://that.remote.server/remote.php?prj=tnt3): failed to open stream: HTTP request failed! in /.../current.php on line 18 DEAD

Я почти подозреваю тайм-аут, но не имея возможности set_time_limit, я не могу быть уверен в этом,Какие у меня есть варианты?

1 Ответ

0 голосов
/ 29 мая 2018

В сообщении об ошибке «current.php» - это файл, который вы пытаетесь открыть, или он является частью другого URI?Потому что это "..." выглядит странно ...

...