2016-07-15 72 views
0

我从来没有使用过cffile上传。在查看文档时,我看到要上传的文件被描述为coldfusion cffile上传如何描述要上传的文件

用于选择文件的表单字段的名称。 请勿使用数字符号(#)指定字段名称。

我只是不能破译这个。如果要上传的文件是驻留在用户磁盘上的john.jpg,如何在cffile命令中指出?

我还有其他问题,但想从这个非常基本的开始。

+0

你有没有看着不包括实例文档? –

+0

哦,它确实,但他们没有解释什么:fileField =“FileContents” - 什么可能是“FileContents”? –

回答

1

您使用的是哪些文档?应该有一个像这样的例子:<cffile action="upload">

在这个例子中(我已编辑),它显示你不引用用户选择的文件的名称,可以是任何东西,你引用表单域的名称,fileContents,即用于上传文件。

<!--- Windows Example ---> 
<!--- Check to see if the Form variable exists. ---> 
<cfif structKeyExists(Form, "FileContents") > 
    <!--- If TRUE, upload the file. ---> 
    <cffile action = "upload" 
     fileField = "FileContents" 
     destination = "c:\files\upload\" 
     accept = "text/html" 
     nameConflict = "MakeUnique"> 
<cfelse> 
    <!--- If FALSE, show the Form. ---> 
    <form method="post" action=<cfoutput>#cgi.script_name#</cfoutput> 
     name="uploadForm" enctype="multipart/form-data"> 

     <input name="FileContents" type="file"> 
     <input name="submit" type="submit" value="Upload File"> 
    </form> 
</cfif> 

一旦CFFILE过程完成后,中变量的集合在一个名为CFFILE结构的定义(见文档链接)。其中一个变量是cffile.clientFile,其中包含从用户计算机上传的文件的名称。

+0

谢谢你的解释 - 我开始明白了。但是,我想上传的文件john.jpg的名称在哪里? –

+0

在我的答案中看到最后一行?该文件的名称不存在于您可以访问的任何表单字段变量的值中。它包含在上传的文件内容中,您可以使用变量cffile.clientFile进行访问,该变量仅在运行CFFILE上载文件后才存在。 –

+0

Adrian,我搞砸了代码,发现自己要上传的文件是在type = file生成的浏览按钮中指定的。如果文件说明的话,这将会有所帮助。无论如何,它现在都在运作。你的帮助表示赞赏 –

0

对于CFFILE命令:

<cffile action = "upload" 
     fileField = "FileContents" 
     destination = "c:\files\upload\" 
     accept = "text/html" 
     nameConflict = "MakeUnique" 
     result = "thisResult"> 

...你可以使用#thisResult.clientFile#得到原始文件名。 所有其他字段也可以使用这个。

我发现这对计算器: ColdFusion ServerFile is undefined in CFFile

+0

这应该是一条评论。虽然“迟到”答案总是受欢迎,但它们应该通过[提供新信息]为线索增加价值(http://meta.stackoverflow.com/a/299678/104223)。以上内容已经在[现有答案](http://stackoverflow.com/a/38403347/104223)中介绍过。 – Leigh