Как указать родственника в CFFile?

Это путь к моему json-файлу: https://devbox.mysite.com/search/KOGroups.json Но вместо cfhttp мне нравится использовать cfifle с действием чтения. Я не знаю, как превратить этот путь в относительный путь для cffile. Я читал об этой статье ColdFusion Read File, и похоже, что они используют абсолютные путь в их примере. Я попробовал метод Бена Наделя "Относительные пути к файлам работают в файловой системе ColdFusion", но код, который он предоставляет для получения родительского каталога, у меня не работает. Все, что мне нужно, это повернуть этот путь, https://devbox.mysite.com/search/, в тег cffile, чтобы я мог прочитать файл .json.


person 2myCharlie    schedule 07.03.2016    source источник


Ответы (2)


Используйте для этого функцию expandPath().

expandPath('../path/to/file') возвращает полный путь сервера к этому файлу.

person Adrian J. Moreno    schedule 08.03.2016
comment
Я использовал 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
comment
Вот код, который я использовал: ‹cfset groupData = deserializeJSON(fileread(/commonspot$/DEVELOPMENT/devbox.mysite.com/kb/KOGroups.json)) /› - person 2myCharlie; 09.03.2016
comment
Хорошо, теперь я заработал. Вместо того, чтобы указывать 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
comment
Но поскольку fileread по-прежнему указывает на https для своего пути, а не на относительный путь, есть ли какие-либо преимущества безопасности cfhttp по сравнению с cffile fileread? - person 2myCharlie; 07.03.2016
comment
Подождите... этот файл, который вы читаете, находится в файловой системе вашего сервера, да? Вы не должны использовать HTTP-запрос для его чтения, что вы все еще делаете, если вы даете ему URL-адрес, а не путь. Вы можете уточнить? - person Adam Cameron; 07.03.2016
comment
Да, это мое замешательство, когда BKBK предложил мне это, потому что, если я все еще использую HTTP, то почему я использую cfile fileread. Файл находится на нашем общем диске. В данном случае он находится в папке /search/ сайта. - person 2myCharlie; 08.03.2016
comment
...на нашем общем диске Хм... он находится на том же сервере, что и сайт, ИЛИ находится на общем диске, т.е. путь UNC к другой машине? Если это последнее, учетная запись, под которой работает служба CF, должна иметь к ней доступ (при условии, что Windows o/s). - person Leigh; 08.03.2016
comment
Это путь UNC к другому компьютеру, и учетная запись имеет к нему доступ. Моя проблема в том, что когда я использую чтение файла CFfile, мне не удалось найти файл, если я не указал абсолютный путь. - person 2myCharlie; 08.03.2016