将文件上载到Coldfusion中新创建的目录

将文件上载到Coldfusion中新创建的目录,coldfusion,cffile,cfdirectory,Coldfusion,Cffile,Cfdirectory,在创建目录之前,我在使用cffile时遇到了问题。我使用的是cffileupload标签,我的url属性是一个包含以下代码的页面。基本上,下面的代码创建一个新目录,并将所有图像上载到该目录。但是,它在第二次上传时失败,我在cffileupload flash对象中得到一个500错误。但是,如果我硬编码目录路径,它们都可以上传。有人知道我为什么会有这个问题吗 <!--- User will upload all the images to a temp directory based on

在创建目录之前,我在使用cffile时遇到了问题。我使用的是cffileupload标签,我的url属性是一个包含以下代码的页面。基本上,下面的代码创建一个新目录,并将所有图像上载到该目录。但是,它在第二次上传时失败,我在cffileupload flash对象中得到一个500错误。但是,如果我硬编码目录路径,它们都可以上传。有人知道我为什么会有这个问题吗

<!--- User will upload all the images to a temp directory based on date and time --->
<cfset uploadFolderPath = "C:\ColdFusion9\wwwroot\MyApplication\uploads\" />
<cfset date=DateFormat(Now(),'mm-dd-yyyy_') />
<cfset time=TimeFormat(Now(),'hh-mm-ss') />
<cfset newFolderName = "upload_" & date & time />
<cfset newFolder = uploadFolderPath & newFolderName />
<cfdirectory action = "create" directory="#newFolder#" />

<cffile action="uploadall" destination="#newFolder#" nameconflict="makeunique" />


在正确创建目录之前,您应该首先检查目录是否存在,否则它会出错吗

在正确创建目录之前,您应该首先检查目录是否存在,否则它会出错吗

使用基于flash的cffileupload可能会让您错过应该看到的有价值的调试消息。您还可以连接一个代理,如查看ColdFusion实际接收/发送的内容。发布相关的异常信息将很有帮助


正如raulriera所说,您的问题可能在于cfdirectory调用以创建新文件夹,如果目录已经存在,它将出错。

使用基于闪存的cffileupload可能会导致您丢失您应该看到的宝贵调试消息。您还可以连接一个代理,如查看ColdFusion实际接收/发送的内容。发布相关的异常信息将很有帮助


正如raulriera所说,您的问题可能在于cfdirectory调用以创建新文件夹,如果目录已经存在,它将出错。

好的,因此我发现cffileupload中的url路径是为每个上载的文件调用的,因此它失败了,因为处理脚本正在尝试从上一个上载的文件(发生在同一秒钟)创建一个已经存在的目录。在创建目录之前检查目录是否存在解决了我的问题。

确定,因此我发现cffileupload中的url路径是为每个上载的文件调用的,因此它失败了,因为处理脚本正在尝试从上一个上载的文件(在同一秒中发生)创建一个已经存在的目录. 在创建目录之前检查目录是否存在解决了我的问题。

使用以下编码。我在您现有的代码中添加了“DirectoryExists”函数

<cfset uploadFolderPath = GetDirectoryFromPath(GetCurrentTemplatePath()) />
<cfset date =DateFormat(Now(),"mm-dd-yyyy") />
<cfset time = TimeFormat(Now(),"hh-mm-ss") />
<cfset newFolderName = "upload_" & date & time />
<cfset newFolder = uploadFolderPath & newFolderName />

<cfif NOT DirectoryExists(currentDirectory)>
    <cfdirectory action = "create" directory="#newFolder#" />
</cfif>

<cffile action="uploadall" destination="#newFolder#" nameconflict="makeunique" />

使用以下编码。我在您现有的代码中添加了“DirectoryExists”函数

<cfset uploadFolderPath = GetDirectoryFromPath(GetCurrentTemplatePath()) />
<cfset date =DateFormat(Now(),"mm-dd-yyyy") />
<cfset time = TimeFormat(Now(),"hh-mm-ss") />
<cfset newFolderName = "upload_" & date & time />
<cfset newFolder = uploadFolderPath & newFolderName />

<cfif NOT DirectoryExists(currentDirectory)>
    <cfdirectory action = "create" directory="#newFolder#" />
</cfif>

<cffile action="uploadall" destination="#newFolder#" nameconflict="makeunique" />