Solved

Problem using CFHTTP to post a .docx file

Posted on 2008-10-17
6
540 Views
Last Modified: 2013-12-24
I have an application that uses a resume parsing service.  If I upload the file with a standard form, the service is able to parse the file just fine.  If I POST the file with a CFHTTP tag, the service errors out.

Is there anything further I need to do with my CFHTTP or CFHTTPPARAM tags to further mimic a "standard" form POSTing?

<html>
<head>
	<title>HTTP Post Test</title>
</head>
<body>
<h1>HTTP Post Test</h1>
 
<CFSET variables.str_url = "XxXxXxXxX">
<CFSET variables.str_did = "XxXxXxXxX">
<CFSET variables.str_pid = "XxXxXxXxX">
<CFSET variables.str_cid = "XxXxXxXxX">
<CFSET variables.str_file = "XxXxXxXxX/test5.docx">
 
<!---  This does NOT work  --->
<CFHTTP url="#variables.str_url#" method="post" redirect="yes" useragent="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)">
	<CFHTTPPARAM type="formfield" name="did" value="#variables.str_did#">
	<CFHTTPPARAM type="formfield" name="pid" value="#variables.str_pid#">
	<CFHTTPPARAM type="formfield" name="cid" value="#variables.str_cid#">
	<CFHTTPPARAM type="file" name="document" mimetype="multipart/form-data" file="#variables.str_file#">
</CFHTTP>
 
<CFOUTPUT>
<CFIF StructKeyExists(cfhttp,"filecontent")>
	#cfhttp.filecontent#
</CFIF>
 
<!---  This DOES work  --->
<form action="#variables.str_url#" method="POST" name="frmupload" enctype="multipart/form-data">
	<input type="hidden" name="did" value="#variables.str_did#">
	<input type="hidden" name="pid" value="#variables.str_pid#">
	<input type="hidden" name="cid" value="#variables.str_cid#">
	<input type="file" name="document">
	<input type="submit" name="submit_upload" value="upload">
</form>
</CFOUTPUT>
</body>
</html>

Open in new window

0
Comment
Question by:aseusainc
[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
  • 3
  • 2
6 Comments
 
LVL 25

Expert Comment

by:dgrafx
ID: 22784932
1) method needs to be "PUT"
2) Your mime type (for type=file) needs to be the mimetype of the file you are "PUTTING"
multipart/form-data is Not a mimetype
docx is "application/vnd.openxmlformats-officedocument.wordprocessingml.document"

good luck ...
0
 
LVL 7

Author Comment

by:aseusainc
ID: 22786212
Ended up using another method completely.  Resume parsing service has a SOAP web service that I was able to invoke.
0
 
LVL 25

Expert Comment

by:dgrafx
ID: 22786327
sure ok great ...
but getting back to the question you asked - what I posted is correct.
You can use it for the future when you don't have a prefab web service to rely on.

good luck ...
0
 
LVL 7

Author Comment

by:aseusainc
ID: 22786481
I still intend to go back and test that real quick.  Will post my findings soon.
0
 
LVL 7

Accepted Solution

by:
aseusainc earned 0 total points
ID: 23016950
Changing the MIME type and PUT didn't change anything.  Anyway, switched to the webservice method.

Requesting close.
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

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

Suggested Solutions

Title # Comments Views Activity
Website Test Question 6 131
Forbidden errors 5 156
Coldfusion Datefield problem 2 125
PHP Register global 21 106
In our day to day coding, how many times have we come across a necessity to check whether a URL is a broken link or not? For those of you that answered countless and are using ColdFusion like myself, then this article is for you.  It will show yo…
If you don't have the right permissions set for your WordPress location in IIS, you won't be able to perform automatic updates. Here's how to fix the problem.

726 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