我一直在撞墙挡在头上。我有一个允许用户将zip文件FTP到服务器的系统。然后在管理员中,他们可以告诉应用程序该文件的位置,以便可以对文件执行一组操作。
问题是,上传的文件并不总是具有适当的权限。我尝试用以下内容更改它们:
<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)执行上述任何操作,它可以正常工作。我错过了什么吗?
答案 0 :(得分:4)
FTP'd文件不太可能归Web服务器进程所有,除非您使用与运行的网络服务器相同的凭据进行FTP。除非网络服务器拥有这些文件,否则它将无法更改它们的权限。
答案 1 :(得分:1)
如果Web服务器/ ColdFusion服务器可以读取该文件,请将其复制到暂存区域,然后删除原始文件。如果CF对FOLDER具有写入(和可能的执行)权限,它应该能够删除原始文件,无论谁拥有它,即使它被设置为模式000(任何人都无法访问)。
将上传文件放在沙盒中,然后移动到服务器所需的位置,无论如何都是一种很好的安全措施。