2016-03-07 3 views
1

Ceci est le chemin de mon fichier json: https://devbox.mysite.com/search/KOGroups.json Mais au lieu d'utiliser cfhttp, j'aime utiliser cfifle avec une action de lecture. Je ne sais pas comment transformer ce chemin en un chemin relatif pour cffile. J'ai lu sur cet article ColdFusion Read File et il semble qu'ils utilisent le chemin absolu dans leur exemple. J'ai essayé l'article "Relative File Paths Work In A ColdFusion File System" de Ben Nadel mais le code qu'il fournit pour obtenir le répertoire parent ne fonctionne pas pour moi. Tout ce dont j'ai besoin est de transformer ce chemin, https://devbox.mysite.com/search/, en balise cffile afin que je puisse lire le fichier .json.Comment spécifier un parent dans CFFile?

Répondre

2

Utilisez la fonction expandPath() pour cela.

expandPath('../path/to/file') renvoie le chemin d'accès complet du serveur à ce fichier.

+0

J'ai utilisé le expandPath pour trouver le chemin et j'ai ensuite utilisé cela dans le fileread ('../ chemin/vers/fichier'), il m'a donné l'erreur suivante: Erreur dans le module de script personnalisé (/ devboxbox15/customcf/knowledge/KO-articleDetail.cfm) Une erreur s'est produite lors de l'exécution d'une opération de fichier dans le fichier /commonspot$/DEVELOPMENT/devbox.mysite.com/kb/KOGroups.json. La cause de cette exception était: java.io.FileNotFoundException: \ commonspot $ \ DEVELOPMENT \ devbox.mysite.com \ kb \ KOGroups.json (Le système ne peut pas trouver le chemin spécifié). – Charlie123

+0

Voici le code que j'ai utilisé: Charlie123

+0

Bon, je l'ai eu fonctionnait maintenant. Au lieu de mettre expandPath ('../ chemin/vers/fichier'), j'ai essayé expandPath ('fichier') et utiliser ce chemin entier et cela fonctionne. Merci beaucoup pour l'aide. – Charlie123

0

On dirait BKBK plus dans Adob ​​forum coldfusion répondu à ma question qui suit:

<cfset koGroupsJSON = fileRead("https://devbox.mysite.com/search/KOGroups.json")> 
+0

Mais comme Fileread pointe toujours sur "https" pour son chemin au lieu d'un chemin relatif, y a-t-il un avantage de sécurité de cfhttp sur cffile fileread? – Charlie123

+2

Accrochez-vous ... ce fichier que vous lisez est sur le système de fichiers de votre serveur, oui? Vous ne devriez pas utiliser un req HTTP pour le lire, ce que vous faites encore si vous lui donnez une URL plutôt qu'un chemin. Pouvez-vous clarifier? –

+0

Oui, c'est ma confusion quand BKBK me l'a suggéré parce que si j'utilise toujours le HTTP, alors pourquoi est-ce que j'utilise cfile fileread. Le fichier est sur notre lecteur partagé. Dans ce cas, il se trouve dans le dossier/search/du site. – Charlie123