我做错了什么?
fileUpload.cfm
<cfcomponent name="fileAttachment" hint="This is the File Attachment Object">
<cffunction name="uploadFile" access="public" 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="#ARGUMENTS.fileToUpload#" nameconflict="makeunique">
<cfreturn cffile.clientFile />
</cffunction>
</cfcomponent>
test_fileUpload.cfm
<form action="fileUpload.cfm" enctype="multipart/form-data" method="post">
<input type="file" name="fileToUpload"><br/>
<input type="submit">
</form>
答案 0 :(得分:2)
这一行:
<cffile action="upload" destination="D:\apache\htdocs\abc\uploads" filefield="#ARGUMENTS.fileToUpload#" nameconflict="makeunique">
filefield属性需要包含上传文件的表单字段的名称。你是在正确的轨道上,但不幸的是,这不是#ARGUMENTS.fileToUpload#
的价值,目前 - 基于你的构造,它保留了对实际文件本身的引用。
在表单中添加一个新的隐藏字段:
<input type="hidden" name="nameOfField" value="fileToUpload">
然后,将FORM.nameOfField
作为第一个参数传递给uploadFile()方法。 CFFILE将负责其余的工作。
答案 1 :(得分:0)
好吧,我发现这个代码有很多问题。
下面是正确的代码。 的 fileupload.cfc 强>
<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>
<强> test_fileupload.cfm 强>
`<form action="fileupload.cfc?method=uploadFile" enctype="multipart/form-data" method="post">
<input type="file" name="fileToUpload"><br/>
<input type="submit"> </form>`