Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Coldfusion enctype multipart/form-data cannot access other form data

Posted on 2014-02-25
8
Medium Priority
?
831 Views
Last Modified: 2014-02-25
Hi,

I have created a form using the <cfform> tag and because part of my form requires a file upload I have set the enctype to multipart/form-data however when doing this the file is uploaded but I cannot access any of the other form fields data. If I remove the enctype I cannot upload the file but I can access the other form field data.

Any ideas ?

Thanks

Martyn
0
Comment
Question by:Martyn9098
  • 4
  • 4
8 Comments
 
LVL 4

Expert Comment

by:Rodrigo Munera
ID: 39887081
Is there a URL where we can look at the form?
0
 
LVL 1

Author Comment

by:Martyn9098
ID: 39887112
Sadly no, it's an internal admin portal i'm creating. The company would not allow me to show / post etc. I think this maybe my downfall.

Martyn
0
 
LVL 4

Expert Comment

by:Rodrigo Munera
ID: 39887143
Just ran that scenario on my server and it's working as intended. Without being able to see your code, I can't really help diagnose your issue. :/
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 4

Accepted Solution

by:
Rodrigo Munera earned 2000 total points
ID: 39887156
BTW, this is the code I ran:

		<cfif isDefined("form")>
			<cfdump var="#form#">
			<cfif isdefined("form.filefield")>
				<cffile action="upload" destination="test" filefield="FORM.fileField" nameconflict="makeunique">
					<cfdump var="#file#">
			</cfif>
		</cfif>
		<cfform method="post" enctype="multipart/form-data" format="">
			<cfinput name="textField" type="text" value="Test Text">
			<cfinput type="file" name="fileField" >
			<cfinput type="submit" name="submit" value="Submit"> 
			
		</cfform>

Open in new window

0
 
LVL 1

Author Comment

by:Martyn9098
ID: 39887161
Thanks Rodrigo, I think that helps prove it's an issue with my code.
Form code below if you can help ? I have no other option but to post it.

thanks

Martyn

<cfform action="addadvert.cfm" method="post" enctype="multipart/form-data" id="form" name="form">
          <tr>
            <td width="150" class="formdata" align="right">&nbsp;Company Name</td>
            <td width="448" colspan="2">&nbsp;
              <cfinput alt="Company Name" size="60" id="cname" maxlength="100" name="cname" tabindex="1" type="text" value="" /></td>
          </tr>
          <tr>
            <td width="150" class="hintdata" align="right">(Max 50 chars)&nbsp;</td>
            <td colspan="2" align="right" class="hintdata">&nbsp;</td>
          </tr>
          <tr>
            <td colspan="3"><br /></td>
          </tr>
          <tr>
            <td width="150" class="formdata" align="right" valign="top">&nbsp;Website Address<br />
              <span class="hintdata">(Max 255 chars)&nbsp;</span></td>
            <td colspan="2">&nbsp;
              <cfinput alt="Website Address" size="60" id="wurl" maxlength="255" name="wurl" tabindex="2" ></td>
          </tr>
          <tr>
            <td colspan="3"><br /></td>
          </tr>
          <tr>
            <td width="150" class="formdata" align="right">&nbsp;Category</td>
            <td colspan="2">&nbsp;
              <cfselect id="category" name="category"> <cfoutput query="bdcats">
                <option value="#bdcats.name#">#bdcats.name#</option>
              </cfoutput> </cfselect></td>
          </tr>
          <tr>
            <td colspan="3"><br /></td>
          </tr>
          <tr>
            <td width="150" class="formdata" align="right">&nbsp;Advert Type</td>
            <td colspan="2">&nbsp;
              <cfselect tabindex="4" name="atype" id="atype">
              <option value="Square">Square</option>
              <option value="Horizontal Rectangle">Horizontal Rectangle</option>
              <option value="Vertical Rectangle">Vertical Rectangle</option>
              </cfselect></td>
          </tr>
          <tr>
          <tr>
            <td colspan="3"><br /></td>
          </tr>
          <tr>
            <td width="150" class="formdata" align="right" valign="top">&nbsp;Advert Status<br /></td>
            <td colspan="2">&nbsp;
              <cfselect tabindex="5" name="status" id="status">
              <option value="1">Live</option>
              <option value="0">Dead</option>
              </cfselect></td>
          </tr>
          <tr>
            <td colspan="3"><br /></td>
          </tr>
          <tr>
          <tr>
            <td width="150" class="formdata" align="right" valign="top">&nbsp;Upload Advert</td>
            <td colspan="2">&nbsp;
             
              <!---
    Create folder structure or change to fit your needs
    Expects images to be uploaded to images and thumbnails go in thumbs
 --->
             
              <!--- set the full path to the images folder --->
             
              <cfset mediapath = expandpath('tmpimages')>
             
              <!--- set the desired image height ---->
             
              <cfset thumbsize = 164>
             
              <!--- set the desired image width --->
             
              <cfset imagesize = 164>
              <cfif structKeyExists(form,"fileUpload") and len(form.fileUpload)>
                <cffile action="upload"
    filefield="FileUpload"
    destination="#MediaPath#"
    nameconflict="makeunique">
               
                <!--- read the image ---->
                <cfimage name="uploadedImage"
    source="#MediaPath#/#file.serverFile#" >
               
                <!--- figure out which way to scale the image --->
                <cfif uploadedImage.width gt uploadedImage.height>
                  <cfset thmb_percentage = (thumbsize / uploadedImage.width)>
                  <cfset percentage = (imagesize / uploadedImage.width)>
                  <cfelse>
                  <cfset thmb_percentage = (thumbsize / uploadedImage.height)>
                  <cfset percentage = (imagesize / uploadedImage.height)>
                </cfif>
               
                <!--- calculate the new thumbnail and image height/width --->
                <cfset thumbWidth = round(uploadedImage.width * thmb_percentage)>
                <cfset thumbHeight = round(uploadedImage.height * thmb_percentage)>
                <cfset newWidth = round(uploadedImage.width * percentage)>
                <cfset newHeight = round(uploadedImage.height * percentage)>
               
                <!--- see if we need to resize the image, maybe it is already smaller than our desired size --->
                <cfif uploadedImage.width gt imagesize>
                  <cfimage action="resize"
        height="#newHeight#"
        width="#newWidth#"
        source="#uploadedImage#"
       destination="#MediaPath#/#file.serverFile#"
        overwrite="true"/>
                </cfif>
               
                <!--- create a thumbnail for the image --->
                <cfimage action="resize"
     height="#thumbHeight#"
     width="#thumbWidth#"
     source="#uploadedImage#"
     destination="../images/ads/#file.serverFile#"
     overwrite="true"/>
                <cfoutput>
                  <cflocation url="addadvert.cfm">
                  <img src="../newsimages/thumbs/#file.serverFile#" height="#thumbHeight#" width="#thumbWidth#" align="left" hspace="10"><br>
                  Original Image: #uploadedImage.width#x#uploadedImage.height#<br>
                  Resized Image: #newWidth#x#newHeight#<br>
                  Thumbnail: #thumbWidth#x#thumbHeight#<br>
                  <br>
                </cfoutput>
              </cfif>
              <cfinput type="file" name="fileUpload" id="fileUpload"></td>
          </tr>
          <tr>
            <td colspan="3"><br /></td>
          </tr>
          <tr>
            <td width="150" class="formdata" align="right">&nbsp;Created By</td>
            <td colspan="2">&nbsp;
              <cfinput alt="Created By" size="60" disabled="disabled" id="cby" maxlength="50" name="cby" tabindex="6" type="text" value="#session.realname#" /></td>
          </tr>
          <tr>
            <td colspan="3">&nbsp;</td>
          </tr>
          <tr>
            <td colspan="3"><cfinput type="hidden" name="add" id="add" value="add" />
              <br /></td>
          </tr>
          <tr>
            <td width="150" class="formdata" align="right">&nbsp;</td>
            <td colspan="2">&nbsp;
              <cfinput name="Submit"  type="submit"  value="Submit" tabindex="6" />
              <cfinput type="button" name="cancel" value="cancel" onClick="javascript:location.href='bdentry.cfm';"></td>
          </tr>
          <tr>
            <td colspan="3"><br /></td>
          </tr>
        </cfform>
0
 
LVL 1

Author Comment

by:Martyn9098
ID: 39887182
If it helps, I get a

struct: [empty]

on the result of a cfdump var = form.

Thanks
0
 
LVL 1

Author Closing Comment

by:Martyn9098
ID: 39887213
The cfdump routine allowed me to investigate more to find the cflocation tag I left in there causing the form data to be lost.

Many thanks

Martyn
0
 
LVL 4

Expert Comment

by:Rodrigo Munera
ID: 39887325
Ah!! good to know! glad I could help :)
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Color can increase conversions, create feelings of warmth or even incite people to get behind a cause. If you want your website to really impact site visitors, then it is vital to consider the impact color has on them.
Although a lot of people devote their energy toward marketing for specific industries, there are some basic principles that can be applied to any sector imaginable. We’ll look at four steps to take and examine how those steps were put into action fo…
Viewers will get an overview of the benefits and risks of using Bitcoin to accept payments. What Bitcoin is: Legality: Risks: Benefits: Which businesses are best suited?: Other things you should know: How to get started:
The viewer will learn how to dynamically set the form action using jQuery.
Suggested Courses

971 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question