cffile upload - how do you pass form.file through a function?
I'm having a real headache with trying to implement a function which will take a file from form and then upload it (or really copy it to a destination dir) using cffile.
Here is my code:
<cffunction name="Upload" access="remote" output="false" returntype="any">
<cfargument name="file" required="true">
<cffile action="upload" fileField="arguments.file" destination="#ExpandPath('.')#" nameConflict="makeunique">
<cfreturn cffile>
</cffunction>
<cfif NOT isDefined("form.submitted")>
<form action="index.cfm" method="post" enctype="multipart/form-data">
<input type="hidden" name="submitted" id="submitted" />
<input type="file" name="file" id="file" />
<input type="submit" name="submit" value="Submit" />
</form>
<cfelse>
<cfif isDefined("form.file")>
<cfdump var="#form#">
<cfscript>
response = Upload(Form.file);
</cfscript>
<cfdump var="#response#">
<cfoutput>Success</cfoutput>
<cfelse>
<cfoutput>No file</cfoutput>
</cfif>
</cfif>
The error message I'm getting is:
The form field arguments.file did not contain a file.
What I don't understand is, why does it work when I pass the form.file to the fileField of cffile upload and not when I simply pass it through a function? Is there some sort of hidden security here or something?
I've tried all sorts of variations with this without success. If someone could tell me where I am going wrong I would greatly appreciate it!
Thanks,
eb_dev
