1

我正在尝试使用此代码将文件上传到我的服务器,但给了我一个错误。

这是代码:

 <cfif isdefined("form.submit")> 
   <cffile action="uploadall" destination="#expandpath('../../images/Uploads/after')#"> 
 </cfif> 
 <cfform action="#cgi.script_name#" enctype="multipart/form-data"> 
   <cfinput type="file" name="attachment1"><br> 
   <cfinput type="file" name="attachment2"><br> 
   <cfinput type="file" name="attachment3"><br> 
   <cfinput type="submit" name=" submit" value="submit"> 
 </cfform>

这是错误:

以下信息仅供网站开发人员用于调试目的。

处理请求时发生错误

无效的内容类型:application/x-www-form-urlencoded。

文件上传操作要求表单使用 enctype="multipart/form-data"。

错误发生在 E:\sites\Example.Com\testing\handlers\upload\after.cfm:第 20 行

4

2 回答 2

1

我看到您已经转向了不同的解决方案,但我想回答您的问题,因为答案很疯狂(并且是 Coldfusion 中一些奇怪的陷阱的刻板印象)。问题是<cfform>根本不支持 enctype 属性。如果要上传文件,则必须使用普通的<form>. 很奇怪,对吧?

(我想您可以更改 XSLT,以便带有文件输入的 cfform 会自动正确设置 enctype。但是为什么它不开箱即用地执行此操作超出了我的理解。)

于 2012-09-06T19:24:51.480 回答
0

您在目标属性中引用的目录结构是否存在 '"#expandpath('../../images/Uploads/after')#"'?

如果目标属性不是绝对路径,那么它是相对于 ColdFusion 的临时目录的。与您的 Web 根目录或正在运行的模板无关。

这是此处文档的描述

上传文件的目录的路径名。如果不是绝对路径(以驱动器号和冒号开头,或者正斜杠或反斜杠开头),则它是相对于由 GetTempDirectory 函数返回的 ColdFusion 临时目录的。

于 2012-09-05T19:09:00.893 回答