2011-02-15 11 views
5

Estoy usando una etiqueta cffile para cargar mi archivo y volver a guardarlo con un nuevo nombre. Mi problema es que el archivo podría tener diferentes formatos y no sé cómo detectar la extensión del archivo. Estoy utilizando el código de abajo:Cómo obtener la extensión de archivo al cambiar el nombre del archivo con cffile

<cfset ui = createUUID()> 
<cffile 
    action="upload" 
    accept="video/x-flv, video/mp4, video/x-msvideo" 
    destination="e:\www2\uploads\#ui#.#cffile.ServerFileExt#" 
    nameconflict="makeunique" 
    filefield="form.file" 
> 

Me está diciendo que cffile no está definido.

+0

La variable 'CFFILE' s no se llenan hasta después de la carga. Así que, como dijo Scrittler, cargue primero, luego cambie el nombre. – Leigh

Respuesta

12

recomiendo subir en primer lugar, a continuación, cambiar el nombre de:

<cfset ui = createUUID()> 
<cffile 
    action="upload" 
    accept="video/x-flv, video/mp4, video/x-msvideo" 
    destination="e:\www2\uploads\" 
    nameconflict="makeunique" 
    filefield="form.file" 
/> 
<cffile 
    action="rename" 
    source="e:\www2\uploads\#cffile.serverFileName#" 
    destination="e:\www2\uploads\#ui#.#cffile.serverFileExt#" 
/> 
+0

gracias que funciona. –

+1

En este escenario, ¿cómo capturaría el nuevo nombre para la base de datos? CFFILE.clientFileName Obtiene el nombre original, pero el uso de cffile.serverFileName solo da el nombre pre-rename. – Amir

0

me encontré con esta función increíble creado por Ryan Stille

Se debe hacer todo lo necesario

Lo utilicé para conseguir la extensión entonces acaba de crear un nombre de archivo con un UUID

<cffile action="upload" destination="file://upload_#createUUID()#.#fileExt#" nameconflict="makeunique" result="#formField#"> 
Cuestiones relacionadas