coldfusion cffile上载时出现奇怪的错误消息

coldfusion cffile上载时出现奇怪的错误消息,coldfusion,upload,cffile,Coldfusion,Upload,Cffile,我正在用动作上传测试cffile。我已经编写了一个程序,可以正确地进行上传,但它也向我发送了一条错误消息。消息似乎有误,但我不知道需要修复什么。该方案: <form method="post" enctype="multipart/form-data" name="uploadForm" action= "#reppath#demos"> <input name="FileContents" type="file" > <input name="submit" t

我正在用动作上传测试cffile。我已经编写了一个程序,可以正确地进行上传,但它也向我发送了一条错误消息。消息似乎有误,但我不知道需要修复什么。该方案:

<form method="post" enctype="multipart/form-data"
name="uploadForm"  action= "#reppath#demos">
<input name="FileContents" type="file" >
<input name="submit" type="submit" value="Upload File"> 
</form>

<cffile action = "upload"
fileField     = "FileContents"
destination   = "#reppath#/demos" 
nameConflict  = "MakeUnique"> 

错误:

 Invalid content type: ''.
 The cffile action="upload" requires forms to use enctype="multipart/form-data".

 The error occurred in /opt/coldfusion8/wwwroot/reports/frag5.cfm: line 20

 18 : <cffile action = "upload"
 19 : fileField     = "FileContents"
 20 : destination   = "#reppath#/demos" 
 21 : nameConflict  = "MakeUnique"> 
无效的内容类型:“”。
cffile action=“upload”要求表单使用enctype=“多部分/表单数据”。
错误出现在/opt/coldfusion8/wwwroot/reports/frag5.cfm中:第20行
18 :  

表单确实包含enctype=“multipart/form data”,因此我不明白为什么会出现此错误。上传正在工作,并将所选文件发送到目标文件夹。

我找到了,但这不是您所期望的。Sagar Ganatra写道,“因此CF会在上传任何内容之前尝试运行上传代码,从而导致您看到的错误。若要修复此错误,请添加额外的检查以确保变量不是空的,并且应该正常工作。”以下是有效的方法:

<cfif IsDefined("form.FileContents") then <cffile action = "upload">. 

操作属性看起来很麻烦。为什么表单的操作页面和文件的目标完全相同?糟糕的juju。我一直在想如何做到这一点——文档并不是很有解释性。操作页面应该使用什么?我将操作页面更改为frag6.cfm(基本上没有任何内容),但仍然收到错误消息。操作页面应该包含处理表单信息的逻辑,与任何编程语言一样。错误是什么?要修复它,请添加额外的检查以确保变量不是空的,这是另一个问题。出现原始问题的原因是错误消息所述:必须使用:multipart/form data提交上载。由于代码试图在表单提交之前处理表单,因此初始编码是错误的。因此出现了错误。如上所述,解决方案是验证表单是否已提交,然后使用cffile。是的,Leigh,这是一个很好的解释。虽然错误消息在形式上是正确的,但我不知道在提交表单之前已经调用了cffile。cffile上传的文档非常不清楚和不完整,给出的示例也同样不清楚。最好的方法是将cffile上传放在一个单独的页面上,就像通常提交表单一样。那么,除非确实提交了表格,否则就无法获得cffile。