1

我在这里扯头发,真的无法弄清楚为什么这段代码不起作用。我需要用来<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">它,它工作得非常好!

4

1 回答 1

6

如上所述,cffile仅对服务器文件系统进行操作。所以你需要使用物理文件路径,而不是 url。此外,文档说如果您使用文件写入的相对路径:

“...(路径)相对于 ColdFusion 临时目录,由 GetTempDirectory 函数返回。”

因此,如果您没有收到错误,则该文件已创建,只是不在您预期的位置。为避免这种混淆,请使用绝对路径:

    <cffile action="write" file="c:/path/to/test.txt" output="Content">
于 2012-08-23T14:32:22.723 回答