3

ダウンロードのためにユーザーに提示するファイルを生成していますが、サーバーが開く前に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);

開く前にこれの権限を設定する方法はありますか、またはこれを行うにはどうすればよいですか?ファイルはまだ作成されていないため、無限のループのようなものである可能性があります。ファイルを作成してから開く必要がありますか、それとも何ですか?

4

2 に答える 2

3

書き込んでいる一時ファイル $name が必要ない場合は、ファイルをまったく作成せずにそのままストリーミングします。

代わりに、すべてのヘッダーを出力して出力をエコーすることができます。

于 2009-10-28T17:39:01.813 に答える
1

ファイルの名前が固定されている場合

  • サーバー上に空のファイルを作成する
  • その許可を設定します。
  • phpから開く
于 2009-10-28T17:42:42.180 に答える