Это путь к моему json-файлу: https://devbox.mysite.com/search/KOGroups.json Но вместо cfhttp мне нравится использовать cfifle с действием чтения. Я не знаю, как превратить этот путь в относительный путь для cffile. Я читал об этой статье ColdFusion Read File, и похоже, что они используют абсолютные путь в их примере. Я попробовал метод Бена Наделя "Относительные пути к файлам работают в файловой системе ColdFusion", но код, который он предоставляет для получения родительского каталога, у меня не работает. Все, что мне нужно, это повернуть этот путь, https://devbox.mysite.com/search/, в тег cffile, чтобы я мог прочитать файл .json.
Как указать родственника в CFFile?
Ответы (2)
Используйте для этого функцию expandPath().
expandPath('../path/to/file')
возвращает полный путь сервера к этому файлу.
person
Adrian J. Moreno
schedule
08.03.2016
Я использовал expandPath, чтобы найти путь, а затем я использовал его в файле read('../path/to/file'), это дало мне следующую ошибку: Ошибка в пользовательском модуле сценария (/devboxbox15/customcf/knowledge/ KO-articleDetail.cfm) Произошла ошибка при выполнении файловой операции чтения файла /commonspot$/DEVELOPMENT/devbox.mysite.com/kb/KOGroups.json. Причиной этого исключения было: java.io.FileNotFoundException: \commonspot$\DEVELOPMENT\devbox.mysite.com\kb\KOGroups.json (Система не может найти указанный путь).
- person 2myCharlie; 09.03.2016
Вот код, который я использовал: ‹cfset groupData = deserializeJSON(fileread(/commonspot$/DEVELOPMENT/devbox.mysite.com/kb/KOGroups.json)) /›
- person 2myCharlie; 09.03.2016
Хорошо, теперь я заработал. Вместо того, чтобы указывать expandPath('../path/to/file'), я попробовал expandPath('file') и использовал весь этот путь, и он работает. Хотя большое спасибо за помощь.
- person 2myCharlie; 10.03.2016
Похоже, BKBK на форуме Adob coldfusion ответил на мой вопрос следующим образом:
<cfset koGroupsJSON = fileRead("https://devbox.mysite.com/search/KOGroups.json")>
person
2myCharlie
schedule
07.03.2016
Но поскольку fileread по-прежнему указывает на https для своего пути, а не на относительный путь, есть ли какие-либо преимущества безопасности cfhttp по сравнению с cffile fileread?
- person 2myCharlie; 07.03.2016
Подождите... этот файл, который вы читаете, находится в файловой системе вашего сервера, да? Вы не должны использовать HTTP-запрос для его чтения, что вы все еще делаете, если вы даете ему URL-адрес, а не путь. Вы можете уточнить?
- person Adam Cameron; 07.03.2016
Да, это мое замешательство, когда BKBK предложил мне это, потому что, если я все еще использую HTTP, то почему я использую cfile fileread. Файл находится на нашем общем диске. В данном случае он находится в папке /search/ сайта.
- person 2myCharlie; 08.03.2016
...на нашем общем диске Хм... он находится на том же сервере, что и сайт, ИЛИ находится на общем диске, т.е. путь UNC к другой машине? Если это последнее, учетная запись, под которой работает служба CF, должна иметь к ней доступ (при условии, что Windows o/s).
- person Leigh; 08.03.2016
Это путь UNC к другому компьютеру, и учетная запись имеет к нему доступ. Моя проблема в том, что когда я использую чтение файла CFfile, мне не удалось найти файл, если я не указал абсолютный путь.
- person 2myCharlie; 08.03.2016