使用cffile上传时可以更改文件名吗?

时间:2013-03-04 10:44:48

标签: file-upload coldfusion upload cfml

我目前正在尝试创建一个页面,乐队可以将自己的徽标上传到网站上,以便在需要的地方使用。目前,我创建了一些允许用户上传/删除徽标到分配目录的东西。但我想要做的不是创建一个band_logo字段,而是让乐队徽标文件名成为数据库中乐队的id。由于这是独一无二的,这意味着我没有冗长的创建字段来保存其徽标名称的过程。我知道有一个cffile action="rename"选项,但这是一个更冗长的做事过程。

2 个答案:

答案 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>