Загрузка файлов PHP вне webroot - PullRequest
0 голосов
/ 05 февраля 2012

Я сохраняю много документов вне webroot.

Я хочу щелкнуть ссылку, которая открывает новое окно (target = "_ blank"), и принудительно загрузить найденный файл.

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

function download($filelocation){

  $filename = basename($filelocation); 
  if (file_exists($filelocation)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.$filename); 
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($filelocation));
    ob_clean();
    flush();
    readfile($filelocation);
    exit;
  }

}

В новом окне браузера я просто называю эту функцию download() с определенным путем к файлу.

Он определенно находит файл, но теперь мне просто интересно, чего мне не хватает в header () для принудительной загрузки файла через браузер.

1 Ответ

1 голос
/ 05 февраля 2012

Отсутствует это:

header("Content-Type: application/force-download"); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...