number your file fields and pass them in like that
<cfset args = structNew()>
<cfset args.dbUpload = request.dbUpload>
<cfset args.fileid = form.fileid>
<cfset args.picture1 = form["picture1"]>
<cfset args.picture2 = form["picture2"]>
<cfset args.picture3 = form["picture3"]>
<cfset args.picture4 = form["picture4"]>
<cfset args.picture5 = form["picture5"]>
<cfset args.ClientEmail = form.ClientEmail>
<cfset args.EditorEmail = "form.EditorEmail">
pass them in the same way
then in your cfc just do a loop
<cfloop from="1" to="5" index="img">
<cfif Len(Trim(arguments["picture#img#"]))>
<cftry>
<cffile action="upload" fieldname="arguments["picture#img#"]">
<cfcatch />
</cftry>
</cfif>
</cfloop>
Thats how i would do it
Steve
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Carl
Sent: Thursday, November 04, 2004 2:12 PM
To: CFAussie Mailing List
Subject: [cfaussie] Re: CFFILE Multiple Uploads using CFC
Yeah sorry Steve I forgot to put that down, I pass the form fields from
the form page, as I put in the original email. The thing is I can only
get one file name to return/insert, instead of all of them if they were
passed...I need to loop over the file names and put them into the
respective field names in the DB...and I can work out how to pass them
back to the return page with the results.. :)
Info has been simplified for this example:
<!--- Info getting passed from form --->
<cfset args = structNew()>
<cfset args.dbUpload = request.dbUpload>
<cfset args.fileid = form.fileid>
<cfset args.picture1 = "picture1">
<cfset args.picture2 = "picture2">
<cfset args.picture3 = "picture3">
<cfset args.picture4 = "picture4">
<cfset args.picture5 = "picture5">
<cfset args.ClientEmail = form.ClientEmail>
<cfset args.EditorEmail = "form.EditorEmail">
Defined Elsewhere:
<cfset stUploadAttachment =
uploadService.uploadFile(argumentCollection=args)>
Thanks
Carl
Steve Onnis wrote:
Going by how you are suposed to use CFC's, you should be doing the upload
outside the CFC because the CFFILE tag will only accept a FORM var and you
wont be able to use the Arguments var.
What i do is pass in the whole form structure, and re-assign it inside the
CFC itself, so it would look something like
<cfargument name="formObj" requires="Yes" type="Struct" />
<cfset thisForm = Arguments.formObj>
<cffile action="UPLOAD" fieldname="thisForm.fileField"...............
and so on
Just an idea for you
Steve
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Carl
Sent: Thursday, November 04, 2004 12:04 PM
To: CFAussie Mailing List
Subject: [cfaussie] CFFILE Multiple Uploads using CFC
Can someone share some info on multi file uploads using CFFILE. I want
to loop through the names of the files so that I can enter them into the
DB into their respective fields..All works fine but cannot work out how
to loop through the names...
Example below is simplified, real example has multiple file types such
as vids, pdf, and jpg's (which I can work out).
Form elements are form.picture1 through to form.picture5
<cfargument name="dbUpload" required="true">
<cfargument name="Clientemail" required="true" type="string">
<cfargument name="Picture1" type="string">
<cfargument name="Picture2" type="string">
<cfargument name="Picture3" type="string">
<cfargument name="Picture4" type="string">
<cfargument name="Picture5" type="string">
<cfset AcceptFileTypes = "image/jpg>
<cflock name="ClientUpload" type="EXCLUSIVE" timeout="5">
<cfset MyFieldList="Picture1,Picture2,Picture3,Picture4,Picture5">
<cfloop list="#MyFieldList#" index="ThisField">
<cfif IsDefined('Form.#ThisField#') AND Len(Form[ThisField])>
<CFFILE
ACTION="UPLOAD"
FileField="#ThisField#"
Destination="#request.UploadDirectory#"
NameConflict="OverWrite"
accept="#AcceptFileTypes#">
</cfif>
</cfloop>
</cflock>
This is where I am having trouble...because they all finish at different
times based on size (I worked out how to do it with one file but not
multi).
<cfset Picture1 = cffile.serverfile>
<cfset Picture2 = cffile.serverfile>
<cfset Picture3 = cffile.serverfile>
<cfset Picture4 = cffile.serverfile>
<cfset Picture5 = cffile.serverfile>
<cfquery datasource="#request.dsn#"
name="qUpload"
INSERT INTO #arguments.dbUpload#
(File_ObjectID,
File_Editor,
File_Picture1,
File_Picture2,
File_Picture3,
File_Picture4,
File_Picture5,
File_Referer,
File_DateCreated,
File_CreatedBy)
VALUES
('#arguments.FileId#',
'#arguments.EditorEmail#',
'#Picture1#',
'#Picture2#',
'#Picture3#',
'#Picture4#',
'#Picture5#',
'#arguments.Desc#',
'#arguments.referer#',
#Now()#,
'#arguments.ClientEmail#')
</cfquery>
---
You are currently subscribed to cfaussie as: [EMAIL PROTECTED]
To unsubscribe send a blank email to
[EMAIL PROTECTED]
Aussie Macromedia Developers: http://lists.daemon.com.au/
---
You are currently subscribed to cfaussie as: [EMAIL PROTECTED]
To unsubscribe send a blank email to
[EMAIL PROTECTED]
Aussie Macromedia Developers: http://lists.daemon.com.au/