Failed - ошибка сети в Google Chrome при использовании readfile () и filesize () для экспорта данных - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь экспортировать данные из серверной части, используя скрипт PHP (download.php).

Ошибка пути к папке застряла, как описано в следующих случаях:

Запуск моего сайта на поддомене: softy.foo.com

Файл сценария, которыйвыполняется при нажатии пользователем кнопки экспорта:

download.php (Path : public_html/softy/warehouse/items/download.php)

Случай 1:

Создана папка exportedfiles в том же месте, что и файл download.php, т.е. items / exportedfiles - РЕЗУЛЬТАТ: файл успешно загружен

Случай 2:

Создано exportedfiles папка вне каталога элементов - РЕЗУЛЬТАТ: файл успешно загружен

Случай 3:

Создана папка exportedfiles с экстремальным внешним путем,то есть внутри папки public_html и я дал полный путь к readfile () в качестве параметра - РЕЗУЛЬТАТ: загрузка файла не удалось -

Файл сначала полностью загружается в загрузках Chromeно, наконец, когда загрузка завершается, он говорит:

Failed - Ошибка сети

(вышеупомянутая ошибка появляется на панели загрузок Chrome вместе с размером файла, например:31 КБ)

download.php читается как показано ниже:

$FileName = 'itemlist.xls';

$Path = 'exportedfiles/'; //works

$Path = '../exportedfiles/'; //works

$Path = '/mydrive/foo/public_html/softy/exportedfiles/'; //fails



    header("Pragma: public"); // required

    header("Expires: 0");

    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

    header("Cache-Control: private",false); // required for certain browsers 

    header("Content-Type: application/msexcel");

    header("Content-Disposition: attachment; filename=\"{$FileName}\";" );

    header("Content-Transfer-Encoding: binary");

    header("Content-Length: ".filesize($Path.$FileName)) ;


    readfile($Path."{$FileName}");
...