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

0 coldfusion file-upload cffile

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

继承我处理文件上传的代码

<cfset mypath=expandpath('UserImages/UploadedImages/' & '#session.details.uimages#')>
<cffile action="upload" destination="#mypath#" nameconflict="makeunique"/>
Run Code Online (Sandbox Code Playgroud)

如果我用实际目录名替换#session.details.uimages#,上传工作正常.是,我想做什么,可实现还是不可能?

当我撕裂我的头发时,任何帮助或指导都会受到欢迎!

谢谢大家!

Pet*_*ton 6

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

如果uimages来自用户,请不要忘记首先验证它是否是有效的目录名称(具体而言,它不包含路径遍历语法,即..).

此外,您的cffile缺少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"
/>
Run Code Online (Sandbox Code Playgroud)