<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">
Другие вопросы по тегам