我目前正在尝试创建一个页面,乐队可以将自己的徽标上传到网站上,以便在需要的地方使用。目前,我创建了一些允许用户上传/删除徽标到分配目录的东西。但我想要做的不是创建一个band_logo字段,而是让乐队徽标文件名成为数据库中乐队的id。由于这是独一无二的,这意味着我没有冗长的创建字段来保存其徽标名称的过程。我知道有一个cffile action="rename"
选项,但这是一个更冗长的做事过程。
答案 0 :(得分:7)
是的,如果您在destination
中提供文件名,则会在上传时重命名该文件。
<cffile action="upload" destination="/path/to/some/directory/#session.bandName#.jpg" ... />
请参阅Renaming Files As They Are Uploaded (how CFFILE actually works)
BTW,搜索谷歌“name file on cffile upload”发现该文章......但是,您仍然可能想要使用
<cffile action = "upload" ...>
then
<cffile action = "rename" ...>
因为除非您在客户端阻止文件扩展名并将其传递给服务器,否则如果他们不上传.jpg
或您指定的任何扩展名,则对文件扩展名进行硬编码可能会导致问题。它不是那么多代码或开销,而是更安全。
答案 1 :(得分:0)
<cfif #ServerFileExt# EQ 'jpg'>
<cffile action="upload" destination="/path/to/some/directory/#session.bandName#.jpg" />
<cffile action="rename"
source="path/to/some/directory/#session.bandName#.jpg"
destination="path/to/some/directory/#getData.bandsID#.jpg">
<cfelse>
<cflocation addtoken="no" url="back to form upload page">
</cfif>