J'ai changé la syntaxe mais j'ai toujours le même problème, il semblerait qu'on perde la connexion en passant par la fonction.
Voici mon code : main.cfm
<cfinvoke component="fct" method="ftp">
<cfinvokeargument name="login" value="#login#">
<cfinvokeargument name="serveur" value="#serveur#">
<cfinvokeargument name="mot_de_passe" value="#password#">
<cfinvokeargument name="action" value="open">
<cfinvokeargument name="connection" value="serveur">
</cfinvoke>
<cfinvoke component="fct" method="ftp">
<cfinvokeargument name="action" value="close">
<cfinvokeargument name="connection" value="serveur">
</cfinvoke>
mon composant : fct.cfc
<cfcomponent>
<cffunction name="ftp" returntype="string">
<cfargument name="login" required="no">
<cfargument name="mot_de_passe" required="no">
<cfargument name="serveur" required="no">
<cfargument name="action" required="no">
<cfargument name="remotefile" required="no">
<cfargument name="localfile" required="no">
<cfargument name="directory" required="no">
<cfargument name="connection" required="no">
<cfswitch expression="#action#">
<cfcase value="open">
<cfftp action="open" server="#serveur#" username="#login#" password="#mot_de_passe#" connection="#connection#">
<cfif #cfftp.Succeeded#> connection open <br> </cfif>
</cfcase>
<cfcase value="close">
<cfftp action="close" connection="#connection#">
</cfcase>
</cfswitch>
</cffunction>
</cfcomponent>
Quand je le lance, ma connexion s'ouvre ("connection open " s'affiche") et ensuite j'ai un message d'erreur "The connection attribute you specified, serveur, is invalid or does not exist "