Link to home
Start Free TrialLog in
Avatar of aseusainc
aseusainc

asked on

Problem using CFHTTP to post a .docx file

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

Avatar of dgrafx
dgrafx
Flag of United States of America image

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 ...
Avatar of aseusainc
aseusainc

ASKER

Ended up using another method completely.  Resume parsing service has a SOAP web service that I was able to invoke.
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 ...
I still intend to go back and test that real quick.  Will post my findings soon.
ASKER CERTIFIED SOLUTION
Avatar of aseusainc
aseusainc

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial