2010-12-06 27 views
1

Ma page comporte un formulaire qui interagit avec un CFC via un message ajax. . Lorsque l'utilisateur modifie le texte et les clics enregistrer doit mettre à jour la base de données, qu'il fait, et renommer une photo avec la valeur qu'ils tapés Tout fonctionne, sauf que je continue à obtenir l'erreur:Erreur d'attribution CFFILE avec action = "renommer", indique que le fichier est invalide

The value of the attribute source, which is currently /Applications/ColdFusion8/wwwroot/theClient/staging/admin/images/Old_Image.jpg, is invalid.

Le le fichier existe et je l'ai changé pour lire/écrire pour tout le monde mais ti me donne toujours l'erreur.

Des idées?

Je tiens à souligner que var dans mon CFC pour remplacer un court espaces et les changements pour underscores donc, il n'y a pas d'espace dans le nom de fichier ...

+0

Pouvez-vous montrer le codage exact et l'erreur? – ppshein

Répondre

4

Si je me souviens bien cela est probablement un problème avec le destination nom de fichier plutôt que le nom de fichier source. Je pense que c'est un bug avec le message d'erreur dans CF.

+0

Voir ici: http://www.1pixelout.net/2005/06/23/an-incredibly-usefull-cffile-error-message/ –

+0

Pour le compte rendu - J'ai déjà signalé un bug dans le passé sera corrigé dans une future version de CF. –

+0

BINGO! C'était la destination qui était le problème, pas la source. J'ai regardé en arrière sur ma variable qui a défini le chemin pour la destination J'ai réalisé que j'avais omis le expandPath() ... Merci, Todd. – Ofeargall

0

Le problème est peut-être que vous utilisez un chemin d'accès relatif au fichier source. Le problème est que les liens relatifs dans l'attribut source sont relatifs au répertoire temporaire ColdFusion. Essayez de donner un chemin absolu ou en utilisant la fonction EXPANDPATH pour créer un chemin absolu à votre ressource comme ceci:

<cffile action="rename" source="#expandPath('/Applications/ColdFusion8/wwwroot/theClient/staging/admin/images/Old_Image.jpg')#" destination="#expandPath('/Applications/ColdFusion8/wwwroot/theClient/staging/admin/images/NEW_Image.jpg')#"> 

des FC 9 documentation sur l'action CFFILE = « renommer »

If not an absolute path (starting with a drive letter and a colon, or a forward or backward slash), it is relative to the ColdFusion temporary directory, which is returned by the GetTempDirectory function.

0

J'ai eu la même problème et à la fin c'était autre chose: l'utilisateur ColdFusion n'avait pas d'autorisation "modifier" dans le dossier. Il avait en lecture/écriture mais pas de modification. (soupir!)