File upload 在对象中上载文件

File upload 在对象中上载文件,file-upload,coldfusion,coldfusion-9,File Upload,Coldfusion,Coldfusion 9,我做错了什么 fileUpload.cfm test_fileUpload.cfm 这一行: <cffile action="upload" destination="D:\apache\htdocs\abc\uploads" filefield="#ARGUMENTS.fileToUpload#" nameconflict="makeunique"> 然后,将FORM.nameOfField作为第一个参数传递给uploadFile方法。CFFILE将处理其余部分。好吧,我发现这段

我做错了什么

fileUpload.cfm

test_fileUpload.cfm

这一行:

<cffile action="upload" destination="D:\apache\htdocs\abc\uploads" filefield="#ARGUMENTS.fileToUpload#" nameconflict="makeunique">

然后,将FORM.nameOfField作为第一个参数传递给uploadFile方法。CFFILE将处理其余部分。

好吧,我发现这段代码有很多问题

当您在其中写入组件时,fileupload.cfm应该是组件文件fileupload.cfc。 由于您要从表单直接调用upload方法,所以调用访问类型必须是REMOTE。 操作页面应更改为fileupload.cfc?方法=uploadFile 如果将cffile定义为组件的局部变量,则必须在cffile标记中指定result=cffile属性。 filefield属性采用表单字段的名称,而不是其值,所以只需删除标记并使用fileToUpload即可。 下面是正确的代码。 fileupload.cfc

test_fileupload.cfm

<form action="fileUpload.cfm" enctype="multipart/form-data" method="post">
    <input type="file" name="fileToUpload"><br/>
    <input type="submit">
</form>
<cffile action="upload" destination="D:\apache\htdocs\abc\uploads" filefield="#ARGUMENTS.fileToUpload#" nameconflict="makeunique">
<input type="hidden" name="nameOfField" value="fileToUpload">
<cffunction name="uploadFile" access="remote" output="no" returntype="string">
    <cfargument name="fileToUpload" type="string" required="no">
    <cfargument name="pDsn" required="no" type="string">
    <cfset var cffile = "">
    <cffile action="upload" destination="D:\apache\htdocs\abc\uploads" filefield="fileToUpload" result="cffile" nameconflict="makeunique">
    <cfreturn cffile.clientFile />
</cffunction>

</cfcomponent>
<form action="fileupload.cfc?method=uploadFile" enctype="multipart/form-data" method="post">
   <input type="file" name="fileToUpload"><br/>
   <input type="submit">
</form>