установить права доступа к файлам в заголовке перед принудительной загрузкой в ​​php? - PullRequest
3 голосов
/ 28 октября 2009

Я создаю файл, чтобы представить его пользователю для загрузки, но сервер не позволяет мне открыть его, потому что для этого ему необходимо иметь разрешения 777.

Вот мой код

$fh = fopen("$name", 'w') or die("can't open file");
fwrite($fh, $data);
fclose($fh);

header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Length: ". filesize("$name").";");
header("Content-Disposition: attachment; filename=$name");
header("Content-Type: application/octet-stream; "); 
header("Content-Transfer-Encoding: binary");

readfile($name);

любой способ установить права доступа до того, как я его открою, или как мне это сделать? Файл еще не создан, поэтому это может быть бесконечный цикл. Должен ли я сделать файл, затем открыть его или как?

Ответы [ 2 ]

3 голосов
/ 28 октября 2009

Если вам не нужен временный файл, который вы пишете, $ name, просто выполните потоковую передачу, не создавая файл вообще.

Вместо этого вы можете просто вывести все ваши заголовки и повторить вывод.

1 голос
/ 28 октября 2009

Если имя файла фиксированное, тогда

  • создать пустой файл на сервере
  • установить его разрешение.
  • открой его с php
...