Comment utiliser correctement de Coldfusion FileExist() la méthode?
Je n'utilise pas de coldfusion beaucoup à tous, je suis besoin de patch du code. Fondamentalement, je suis en train de vérifier et voir si un fichier que j'ai téléchargé existe et si elle n'existe pas, incrémenter une variable de 1. Ensuite, répétez jusqu'à ce que je obtenir un nom de fichier unique. Pour une raison quelconque, je n'arrive pas à comprendre la bonne façon d'utiliser FileExist(). Certains forums vous recommandons de l'utiliser avec len() mais ceux-ci sont à partir de 2006, et quand je fais qu'il semble toujours vrai. Aussi, quand je regarde http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7c66.html il dit qu'il retourne soit Oui ou Non. J'ai essayé de vérifier le résultat de diverses manières, mais pas de chance.
C'est la partie de code que j'ai qui je fais affaire avec. L'application.filepath est juste une variable dans mon fichier de l'application qui stockent l'expandpath().
<cffile action="upload" destination="#Application.filePath#ListingsGallery/" filefield="iconImage" nameconflict="makeunique">
<cfset iconPlace = #cffile.serverfile#>
<cfset myExt = listLast(iconPlace,".")>
<cfset i = 1 >
<cfset myVar = false>
<cfloop condition="myVar EQ false">
<cfset newIconName = "iconPhoto" & i &"."& myExt>
<cfset iconName = Application.filePath & "ListingsGallery/" & #newIconName#>
<cfoutput>#iconName#</cfoutput><br />//just checking to see if it is the correct path, it is.
<cfif FileExists(iconName) EQ 'Yes'>
<cfoutput>#myVar#</cfoutput> //checking the value, it never hits here.
<cfelse>
<cfoutput>#myVar#</cfoutput><br /> //checking the value, it always hits here.
<cfset myVar = true>
<cfoutput>#myVar#</cfoutput> //Again check the value.
</cfif>
<cfset i++>
</cfloop>
<cffile action="rename" source="#Application.filePath#ListingsGallery/#iconPlace#" destination="#Application.filePath#ListingsGallery/#newIconName#">
Le chemin d'accès absolu sur un serveur unix est quelque chose comme /var/www/site web nom de dossier/etc....
- Il Correct? C'est l'absolu chemin d'accès au serveur, coldfusion docs semblent spécifier au moins un microsoft absolu chemin d'accès au serveur, donc je suis en supposant que c'est ce qui est nécessaire.
Modifier---------------------------
PS: je peux seulement donner un de vous de crédit, donc je l'ai donné à Kruger depuis qu'il est arrivé une minute plus tôt.
lol...
<cfif FileExists(iconName) EQ 'Yes'>
est une comparaison de chaînes de caractères. Vous devriez probablement juste de ne <cfif FileExists(iconName)>
depuis FileExists renvoie une valeur booléenne.OriginalL'auteur d.lanza38 | 2012-04-30
Vous devez vous connecter pour publier un commentaire.
En supposant que votre demande.Chemin est le chemin d'accès au fichier que vous êtes sur la bonne voie. Il ressemble à votre répertoire de téléchargement pourrait être en dessous de la racine web - compte tenu de la déplacer à l'extérieur la racine web pour plus de sécurité. Jetez un oeil à #expandPath('.')# comme une façon de créer de la garantie des chemins d'accès aux fichiers sans les fautes de frappe 🙂 rend votre code plus portable.
À mes yeux le code ci-dessus fonctionne. FYI - vous n'avez pas besoin de "EQ " OUI". Vous êtes beaux tout simplement faire:
Vous pouvez également faire de
Il y a plusieurs façons de gérer le code logique dans la MUCOVISCIDOSE.
Si votre fileExists() ne fait jamais prendre un coup d'oeil à votre renommer. Êtes-vous de jeter un eror?
Oui, mais les questions que je vais avoir qui m'a fait entreprendre ce que avez à faire avec des personnes téléchargeant des images avec des espaces. Ils se transforment en %20 dans la base de données, mais restent un espace sur le serveur. De sorte que les images n'apparaissent jamais et ne peut pas être supprimé sur la base de la base de données de l'entrée. J'ai supposé que je pouvais faire une sorte de str_replace mais si je peux snip ici, je préfère ne pas avoir à parcourir et de modifier toutes les références à ces images.
Ensuite, je dirais que vous êtes sur la bonne voie... j'ai écrit un code comme ceci moi-même quelques fois 🙂
OriginalL'auteur Mark A Kruger
FileExists() renvoie une valeur booléenne. Cela devrait fonctionner correctement maintenant que la typo a été fixé:
Il y a plusieurs endroits dans la MUCOVISCIDOSE code où seul vrai/faux travail. C'est juste un peu buggé et il y a quelques erreurs dans la documentation. Je suis content d'avoir pu être de quelque secours.
Il peut y avoir quelques cas particuliers (je ne me souviens main gauche), mais je suis assez sûr que ce n'est pas l'un d'eux 🙂 Soit la syntaxe devrait fonctionner. C'est juste une question de style. Bien que je préfère à la vôtre.
Oh, les choses que nous faisons pour assurer la compatibilité descendante 😉
Faute de frappe dans l', il n'existe pas exister.
OriginalL'auteur Evik James
Je ne peux pas ajouter des notes à des réponses, mais je voulais laisser le OP sais que CF est sans type quand il s'agit de booléenne évaluations de fonctions. 0 est le même que le "non" est le même que le "faux", alors que n'importe quel nombre positif est la même chose que "oui" est le même que le "vrai".
true
.Là vous allez - vous vous êtes passé le stupide 50 rep limite, peuvent poster des commentaires maintenant. 🙂
Je vais vous donner une voix supplémentaire sharondio... juste pour que vous pouvez faire des commentaires 🙂
Ou tout simplement pour m'empêcher de poster des réponses qui sont vraiment des commentaires? 🙂 Merci les gars!
OriginalL'auteur Sharondio
Son grand retour fin de la sécurité, mais cela doit avoir été traité sur le front-end de sorte que vous ne jamais obtenir les valeurs que vous ne voulez pas. Le nouveau HTML5 modèles d'entrée serait d'empêcher que cela ne soit jamais soumis, de sorte que vous n'avez pas à résoudre ce problème sur le back-end.
http://www.w3schools.com/tags/att_input_pattern.asp
html5 modèles d'entrée ne doit pas être utilisé pour la sécurité. Il y a d'autres façons de lancer des données à un serveur qui contournent le navigateur.
OriginalL'auteur crisprex