我生成一个文件以供用户下载,但服务器不允许我打开它,因为它需要拥有 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);

在我打开它之前,有什么方法可以设置它的权限,或者我将如何执行此操作?该文件尚未创建,因此可能会陷入无限循环。我应该制作文件,然后打开它,还是什么?

有帮助吗?

解决方案

如果您不需要正在编写的临时文件$ name,那么只需将其直接传输而不创建文件。

您只需输出所有标题并回显输出即可。

其他提示

如果文件名是固定的那么

  • 在服务器上创建一个空文件
  • 设置其权限。
  • 从 php 打开它
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top