复制和重命名文件并在数据库中存储名称

时间:2016-01-07 17:07:15

标签: coldfusion

我有一个注册页面,要求提供employee_number, user_name, user_pass, firstname, lastname, position, email, phone_extension, department, picture等信息。一旦他们填写这些信息并且他们点击注册,它就会被上传到数据库中。

是否可以根据数据库中的信息创建特定于该用户的个人资料页面?

例如,如果我注册了它从我的模板DavidBriertonProfile.cfm创建Profile.cfm并让它在数据库中添加DavidBriertonProfile.cfm,那么我可以使用该名称稍后引用。但我是否可以获取我的模板Profile.cfm并根据其名称对其进行重命名,并将其添加到profiles/(TherenameProfile).cfm

我一直在使用cffile来创建一个路径,但我需要它在幕后选择我的模板文件,用户从来没有看到过这个。

<cffile 
     action       = "upload" 
     file         = "#expandPath("/webapps/dash/profiles/profile.cfm")#"
     destination  = "#expandPath("/webapps/dash/profiles/")#" 
     nameConflict = "MakeUnique" 
     result       = "myfile" 
   /> 

1 个答案:

答案 0 :(得分:1)

有两个主要选项

从coldfusion模板创建静态文件...

<cfsavecontent variable="filecontent">
    <cfinclude template="profile.cfm" />
</cfsavecontent>
<cffile action="write" file="profiles/#FirstNameLastName#Profile.html" output="#filecontent#" />
<!--- it looks like the "nameconflict" option is only available for upload action so will have to deal with that --->

创建一个文件,仅用于设置用户ID并包括profile.cfm

<cffile action="write"
    file="profiles/#FirstNameLastName#.cfm"
    output="<cfset userid ='#UserID' /><cfinclude template='../profile.cfm' />"
/>

其他一些选项包括

  • 保存您要创建的唯一cfm文件的名称(例如:DavidSmith12Profile)但不实际创建它,而是使用Application.cfc中的OnMissingTemplate函数获取提供的名称并执行数据库查找和然后显示个人资料结果

  • 在Web服务器上执行URL重写,将任何请求转换为格式/profiles/(++)的路径到/profile.cfm?filename={\1},然后直接通过文件名进行数据库查找在profile.cfm

享受