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

Я вынужден загрузить файл 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).

Как я изменил свой код o это. Но все еще есть проблема. Проблема заключается в том, что этот код устанавливает разрешение только для файла, созданного на стороне сервера, а не для файла, загруженного на стороне клиента. Вот обновленный код.

$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);

0

Решение

PHP имеет функцию под названием CHMOD () для изменения прав доступа к файлам.

Использование: chmod($path,0777);

Больше информации в следующем ссылка 1, ссылка 2.

0

Другие решения

Решаемые. Поскольку проблема была на стороне клиента, файл сохранялся в некоторой папке, в которой все файлы будут доступны только для чтения по умолчанию. Итак, когда я изменил расположение папки загрузки, теперь она работает отлично. Так что код был уже абсолютно правильным.

0

По вопросам рекламы [email protected]