Php 设置强制下载文件的权限

Php 设置强制下载文件的权限,php,file-permissions,force-download,Php,File Permissions,Force Download,我必须强制下载一个excel文件。文件正在下载,完全符合我的要求。但问题是,当我要更改并保存文件内容时,出现了错误显示,好像我无法访问更改文件。所以,我必须在下载文件时设置文件的权限。但我不知道怎么做。如果有人能回答,我们将不胜感激。这是我的代码,它可以完美地作为下载文件使用 $filename = 'myfile.xlsx'; header("Content-type: application/vnd.ms-excel"); header("Content-Disposition: attac

我必须强制下载一个excel文件。文件正在下载,完全符合我的要求。但问题是,当我要更改并保存文件内容时,出现了错误显示,好像我无法访问更改文件。所以,我必须在下载文件时设置文件的权限。但我不知道怎么做。如果有人能回答,我们将不胜感激。这是我的代码,它可以完美地作为下载文件使用

$filename = 'myfile.xlsx';
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$filename");
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";     //$header and $data are the array contains data with '\t' (tabular form data).
当我改变我的代码时。但还是有问题。问题是,这段代码只对在服务器端创建的文件设置权限,而不对在客户端下载的文件设置权限。这里是更新的代码

$filename = 'myfile.xlsx';
$fp = fopen('/var/www/html/cakephp-3.0/webroot/downloads/' . $filename, 'w');
fwrite($fp, "$header\n$data");
fclose($fp);
chmod('/var/www/html/cakephp-3.0/webroot/downloads/' . $filename, 0777);

// Generate Excel File
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$filename");
header("Pragma: no-cache");
header("Expires: 0");
readfile('/var/www/html/cakephp-3.0/webroot/downloads/' . $filename);
PHP有一个用于更改文件权限的函数

用法:
chmod($path,0777)


更多信息请参见下文。

已解决。由于问题是客户端,所以文件被保存在某个文件夹中,默认情况下,该文件夹中的所有文件都是只读的。所以,当我改变下载文件夹的位置时,它现在工作得很好。所以代码已经完全正确了。

标记中设置
下载
属性,如
@13ey,因为我还使用了chmod()。但我只允许访问服务器端创建的文件,而不允许访问客户端下载的文件。您还可以在$path变量中指定您的本地路径,以便更改其权限。请同时检查此链接