1

我一直在用头撞墙。我有一个允许用户通过 FTP 将 zip 文件传输到服务器的系统。然后在管理员中,他们可以告诉应用程序该文件的位置,以便可以对文件执行一组操作。

  1. 将文件移出 Web 根目录
  2. 解压文件
  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) 执行上述任何操作,它可以正常工作。我错过了什么吗?

4

2 回答 2

4

FTP 文件不太可能由网络服务器进程拥有,除非您使用与运行网络服务器相同的凭据进行 FTP。除非网络服务器拥有这些文件,否则它将无法更改它们的权限。

于 2011-03-01T19:45:45.627 回答
1

如果 Web 服务器/ColdFusion 服务器可以读取该文件,请将其复制到暂存区域,然后删除原始文件。如果 CF 对 FOLDER 具有写入(和可能的执行)权限,它应该能够删除原始文件,无论谁拥有它,即使它设置为模式 000(任何人都无法访问)。

在任何情况下,将上传文件放在沙箱中,然后移动到服务器期望它们的位置都是一种很好的安全做法。

于 2011-03-01T20:09:34.210 回答