File upload 将动态生成的目录名传递给cffile标记的目标属性

File upload 将动态生成的目录名传递给cffile标记的目标属性,file-upload,coldfusion,cffile,File Upload,Coldfusion,Cffile,我正在努力处理以下cffile代码。我试图传递一个动态生成的images目录,其名称存储在会话变量中,每个新成员对应一个。我需要将该名称传递给cffile标记的destination属性: 这是我处理文件上传的代码 <cfset mypath=expandpath('UserImages/UploadedImages/' & '#session.details.uimages#')> <cffile action="upload" destination="#mypat

我正在努力处理以下cffile代码。我试图传递一个动态生成的images目录,其名称存储在会话变量中,每个新成员对应一个。我需要将该名称传递给cffile标记的destination属性:

这是我处理文件上传的代码

<cfset mypath=expandpath('UserImages/UploadedImages/' & '#session.details.uimages#')>
<cffile action="upload" destination="#mypath#" nameconflict="makeunique"/>
如果我用实际的目录名替换session.details.uimages,上传工作正常。我想做的是可以实现的还是不可能

任何帮助或指导都将受到欢迎,因为我正在竭尽全力


提前谢谢大家

如果目录不存在,您需要先创建它

如果uimages来自用户,不要忘记首先验证它是一个有效的目录名,特别是它不包含路径遍历语法,即

此外,您的文件还缺少filefield属性,这是必需的

还要注意的是,会话变量周围缺少散列-它们是不必要的

<cfset MyPath = expandPath( 'UserImages/UploadedImages/' & session.details.uimages ) />

<cfif NOT DirectoryExists( MyPath )>
    <cfset DirectoryCreate( MyPath ) />
</cfif>

<cffile
    action       = "upload"
    destination  = "#MyPath#"
    nameconflict = "makeunique"
    filefield    = "name_of_field_to_upload_from"
/>

如果目录不存在,您需要先创建它

如果uimages来自用户,不要忘记首先验证它是一个有效的目录名,特别是它不包含路径遍历语法,即

此外,您的文件还缺少filefield属性,这是必需的

还要注意的是,会话变量周围缺少散列-它们是不必要的

<cfset MyPath = expandPath( 'UserImages/UploadedImages/' & session.details.uimages ) />

<cfif NOT DirectoryExists( MyPath )>
    <cfset DirectoryCreate( MyPath ) />
</cfif>

<cffile
    action       = "upload"
    destination  = "#MyPath#"
    nameconflict = "makeunique"
    filefield    = "name_of_field_to_upload_from"
/>

谢谢你的回复,彼得。上面的代码已经实现。它仍然不起作用。我一直在关注Ramond Camden的博客,它仍然不起作用是毫无意义的-什么不起作用,怎么起作用?i、 e.错误消息或意外结果是什么?另外,当你关注一篇博客文章时,请在原始问题中说明你正在使用的CF版本。Ray在这里有一个更新/完整的教程:抱歉,打嗝了。我使用的是CF10“不工作”表示未上载所选文件。代码通过将会话变量替换为静态名称来工作。这段代码是从一个带有以下代码的页面调用的:处理页面上cffile的Destination attr,uploadall.cfm不喜欢从该页面外部传递给它的变量。如果在处理页面上创建了一个新的变量名,代码工作正常。我想知道它与跨页面跟踪会话变量有关!彼得:我是新来的,所以请容忍我,并提出相应的建议。谢谢你回复彼得。上面的代码已经实现。它仍然不起作用。我一直在关注Ramond Camden的博客,它仍然不起作用是毫无意义的-什么不起作用,怎么起作用?i、 e.错误消息或意外结果是什么?另外,当你关注一篇博客文章时,请在原始问题中说明你正在使用的CF版本。Ray在这里有一个更新/完整的教程:抱歉,打嗝了。我使用的是CF10“不工作”表示未上载所选文件。代码通过将会话变量替换为静态名称来工作。这段代码是从一个带有以下代码的页面调用的:处理页面上cffile的Destination attr,uploadall.cfm不喜欢从该页面外部传递给它的变量。如果在处理页面上创建了一个新的变量名,代码工作正常。我想知道它与跨页面跟踪会话变量有关!彼得:我是新手,所以请容忍我,并提出相应的建议。这应该很好。转储我的路径并确保其位置正确。这应该可以正常工作。转储我的路径并确保其位置正确。