2010-07-30 15 views
1

디렉토리를 만들기 전에 cffile을 사용하는 데 문제가 있습니다. cffileupload 태그를 사용하고 있고 url 속성은 다음 코드가있는 페이지입니다. 기본적으로 아래 코드는 새 디렉토리를 만들고 모든 이미지를 해당 디렉토리에 업로드합니다. 그러나, 그것은 두 번째 업로드에 실패하고 나는 cffileupload 플래시 개체에 500 오류가 발생합니다. 그러나 디렉토리 경로를 하드 코드하면 모두 잘 업로드됩니다. 누구든지 왜이 문제가 있는지 알고 있습니까?Coldfusion에서 새로 생성 된 디렉토리에 파일 업로드

<!--- 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" /> 

답변

0

먼저 디렉토리를 생성하기 전에 존재하는지 확인해야합니다. 그렇지 않으면 오류가 발생합니다.

0

플래시 기반 cffileupload를 사용하면보고 있어야하는 중요한 디버그 메시지가 사라질 수 있습니다. Fiddler과 같은 프록시를 연결하여 실제로 ColdFusion에서 수신/전송하는 것을 확인할 수도 있습니다. 관련 예외 정보를 게시하면 도움이 될 것입니다.

raulriera에서 설명한 것처럼 새 폴더를 만들기 위해 cfdirectory 호출에 문제가있는 것 같습니다. 디렉토리가 이미 존재하면 오류가 발생합니다.

1

오케이 그래서 cffileupload의 url 경로가 업로드되는 각 파일에 대해 호출된다는 것을 알았습니다. 처리 스크립트가 이전 파일에서 이미 존재하는 디렉토리를 만들려고했기 때문에 실패했습니다. 같은 초). 디렉토리를 생성하기 전에 존재하는지 확인하여 내 문제를 해결했습니다.

3

다음 코드를 사용하십시오. 기존 코딩에 "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" />