Solved

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

Posted on 2014-02-25
8
783 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
How To Reduce Deployment Times With Pre-Baked AMIs

Even if we can't include all the files in the base image, we can sometimes include some of the larger files that we would otherwise have to download, and we can also sometimes remove the most time-consuming steps. This can help a lot with reducing deployment times.

 
LVL 4

Accepted Solution

by:
Rodrigo Munera earned 500 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

Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

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.
Today, the web development industry is booming, and many people consider it to be their vocation. The question you may be asking yourself is – how do I become a web developer?
This tutorial demonstrates how to identify and create boundary or building outlines in Google Maps. In this example, I outline the boundaries of an enclosed skatepark within a community park.  Login to your Google Account, then  Google for "Google M…
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

632 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