Coldfusion в Linux - не может изменить разрешения для файла - PullRequest
1 голос
/ 01 марта 2011

Я бился головой об стену на этом.У меня есть система, которая позволяет пользователю FTP-файл ZIP-файл на сервер.Затем в администраторе они могут сообщить приложению, где находится этот файл, поэтому для файла можно выполнить ряд действий.

  1. Переместить файл из корня сети
  2. Разархивироватьfile
  3. Список содержимого и вставка данных в базу данных

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

<cfscript>
    FileSetAccessMode(myFile, "777");
</cfscript>

И

<cffile action="rename" mode="777" source="#myFile#" destination="#myFile#">        

И

    <cffile action="move" mode="777" source="#myFile#" destination="#myFile#">      

Но ничто не изменит разрешение этого zip-файла.Обратите внимание, что если я выполню любое из вышеуказанных действий с изображением (.jpg), оно будет работать нормально.Я что-то пропустил?

Ответы [ 2 ]

4 голосов
/ 01 марта 2011

Файлы FTP вряд ли будут принадлежать процессу веб-сервера, если вы не используете FTP с теми же учетными данными, что и на веб-сервере.Если веб-сервер не владеет файлами, он не сможет изменять разрешения для них.

1 голос
/ 01 марта 2011

Если веб-сервер / сервер ColdFusion может прочитать файл, скопируйте его в промежуточную область и затем удалите исходный файл. Если CF имеет разрешение на запись (и, возможно, выполнение) в FOLDER, он должен иметь возможность удалить исходный файл независимо от того, кому он принадлежит, даже если он установлен в режим 000 (доступ для всех отсутствует).

Размещение загрузок в песочнице, а затем перемещение туда, где сервер ожидает их, является хорошей практикой безопасности в любом случае.

...