загрузка файлов во вновь созданный каталог в Coldfusion - PullRequest
1 голос
/ 31 июля 2010

У меня проблемы с использованием cffile непосредственно перед созданием каталога.Я использую тег cffileupload, и мой атрибут url представляет собой страницу со следующим кодом.В основном код ниже создает новый каталог и загружает все изображения в этот каталог.Однако, это терпит неудачу на 2-ой загрузке, и я получаю ошибку 500 во флеш-объекте cffileupload.Однако, если я жестко закодирую путь к каталогу, все они загружаются нормально.Кто-нибудь знает, почему у меня такая проблема?

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

Ответы [ 4 ]

3 голосов
/ 03 августа 2010

Используйте следующую кодировку. Я добавил функцию «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" />
1 голос
/ 02 августа 2010

ОК, поэтому я обнаружил, что URL-путь в cffileupload вызывается для каждого загружаемого файла, поэтому он завершился сбоем, поскольку сценарий обработки пытался создать уже существующий каталог из предыдущего загруженного файла (который произошел во время того жевторой).проверка, существует ли каталог, прежде чем создавать его, решила мою проблему.

0 голосов
/ 02 августа 2010

Использование флэш-загрузки cffileupload может привести к тому, что вы потеряете ценное отладочное сообщение, которое вы должны увидеть. Вы также можете подключить прокси-сервер, например Fiddler , чтобы увидеть, что ColdFusion на самом деле получает / отправляет. Будет полезно опубликовать соответствующую информацию об исключении.

Как заявлено raulriera, ваша проблема, вероятно, заключается в вызове cfdirectory для создания новой папки, он выдаст ошибку, если каталог уже существует.

0 голосов
/ 31 июля 2010

Вы должны сначала проверить, существует ли каталог, прежде чем создавать его правильно, иначе он выдаст ошибку?

...