<cffile action = "write"> отказывается работать
Я дергаю себя за волосы и действительно не могу понять, почему этот код не будет работать. Мне нужно использовать <cffile action="write">
разместить документ на сервере.
Я сократил код до минимума, пытаясь получить файл для записи на сервер, однако он все еще не сдвинулся с места. Код, который я запускаю, таков.
<cffile action = "write"
file = "test.txt"
output = "Content"
>
Когда я запускаю этот код на сервере, он ничего не делает. Я не получаю сообщений об ошибках на экране, однако на сервере также не появляется никаких файлов.
Я искал некоторое время, и единственное, что я мог придумать, это написать абсолютный путь к файлу, поэтому я тоже попробовал это
<cffile action = "write"
file = "http://www.my_url.com/test.txt"
output = "Content"
>
Который действительно выдает мне сообщение об ошибке (см. Ниже), однако поиск того, как отсортировать это сообщение об ошибке, был менее чем полезным.
An error occurred when performing a file operation write on file
http://www.my_url.com/test.txt.
The cause of this exception was: java.io.FileNotFoundException:
http://www.my_url.com/test.txt.
Я думал, что это может быть проблемой с моими привилегиями, однако в конце FileNotFound нет ошибки "Отказано в доступе", так что я действительно заблудился относительно того, что делать.
Это вдвойне бесит, потому что на этом конкретном сайте я тоже использую <cffile action="upload">
который работает абсолютно нормально!
1 ответ
Как уже упоминалось выше, cffile
работает только на файловой системе сервера. Поэтому вам нужно использовать физический путь к файлу, а не URL. Также в документации сказано, что если вы используете относительный путь, в который записывается файл:
"... (путь) относительно временного каталога ColdFusion, который возвращается функцией GetTempDirectory."
Таким образом, если вы не получили ошибку, файл был создан, но не там, где вы ожидали. Чтобы избежать путаницы, используйте абсолютные пути:
<cffile action="write" file="c:/path/to/test.txt" output="Content">