ColdFusion CFHTTPPARAM内容类型?

时间:2017-05-22 22:02:53

标签: coldfusion upload dropbox-api cfhttp cfhttpparam

我正在尝试使用cfhttp将文件上传到dropbox api。我从Dropbox收到错误,说明Content-Type不正确:

  

错误的HTTP“Content-Type”标头:   “应用程序/八位字节流,多部分/格式的数据;   boundary = ----------------------------- 7d0d117230764“。期待其中一个   “application / octet-stream”,“text / plain; charset = dropbox-cors-hack”。

在我看来,ColdFusion正在将multipart.form-data附加到我在cfhttpparam标头中定义的内容类型。我不知道如何防止这种情况。我使用下面的代码:

<cfhttp method="post" url="https://content.dropboxapi.com/2/files/upload" result="uploadFile" multipart="no">
    <cfhttpparam type="header" name="Authorization" value="Bearer #DropboxAccessToken#">
    <cfhttpparam type="header" name="Dropbox-API-Arg" value="#serializeJSON(stFields)#">
    <cfhttpparam type="header" name="Dropbox-API-Select-User" value="#DropboxMemberID#">
    <cfhttpparam type="header" name="Content-Type" value="application/octet-stream">
    <cfhttpparam type="file" name="1_1036.gif" file="C:\1_1036.gif">
</cfhttp>

关于可能发生什么的任何想法?

1 个答案:

答案 0 :(得分:0)

&#34; multipart / form-data&#34;可能会自动添加,因为使用了type="file"。如果API期望内容类型&#34; application / octet-stream&#34;,则表明它希望文件数据通过http请求主体上传,而不是作为命名的&#34;文件&#34;领域。而不是type="file"尝试使用:

<cfhttpparam type="body" value="#FileReadBinary('C:\1_1036.gif')#">