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/



---
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/

Reply via email to