在文件上传时,Coldfusion返回:C:\ ColdFusion8 \ runtime \ servers \ coldfusion \ SERVER-INF \ temp \ wwwroot-tmp \ neotmp12429.tmp不包含文件

时间:2009-12-09 00:51:00

标签: coldfusion cffile cfinput

文件上传后,Coldfusion 8返回:C:\ ColdFusion8 \ runtime \ servers \ coldfusion \ SERVER-INF \ temp \ wwwroot-tmp \ neotmp12429.tmp不包含文件。有谁知道可能导致这种情况的原因?语法不好?服务器权限?缺少什么?

我的cfform标记如下所示:

<cfset myPath = "path to my folder">
<cfset mimeTypesList = "list of mime types I can accept">

<cfif structKeyExists(FORM, "submit")>
    <cffile action="upload" fileField="#form.myImage#" destination="#myPath#"
accept="#mimeTypesList#" nameConflict="MakeUnique">
</cfif>

<cfform name="myForm" format="html" action="#cgi.SCRIPT_NAME#" method="post" enctype="multipart/form-data">
<cfinput type="file" name="myImage" accept="image/jpg,image/gif,image/pjpeg">
<cfinput type="submit" name="submit" value="submit">
</cfform>

2 个答案:

答案 0 :(得分:9)

我解决了这个问题,它很微妙,但容易被忽视。

cffile标记的fileField属性只是询问文件输入的名称,而不是生成的Coldfusion FORM变量。

错:

<cffile action="upload" fileField="#form.myImage#" ...

右:

<cffile action="upload" fileField="myImage" ...

答案 1 :(得分:0)

上面的答案是正确的,但只是想添加它,以防任何我解决的相关问题。

我的原始图片上传代码是这样的;

<cfobject component="#session.components#files" name="files">
<cfset url_file_path = files.uploadImage(file_upload)>

这导致标题中提到的类似错误(C:\ ColdFusion8 \ runtime \ servers \ coldfusion \ SERVER-INF \ temp \ wwwroot-tmp \ neotmp12429.tmp)。

当我将代码更改为;

<cfinvoke component="#session.components#files"
method="uploadImage"
formField = "file_upload" 
returnvariable = "url_file_path">

所有人都很笨拙!说实话,我不知道为什么,只是要注意的事情。