Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coldfusion GetHttpRequestData()?_Coldfusion_Xmlhttprequest - Fatal编程技术网

Coldfusion GetHttpRequestData()?

Coldfusion GetHttpRequestData()?,coldfusion,xmlhttprequest,Coldfusion,Xmlhttprequest,有人举过Coldfusion的GetHttpRequestData()的工作原理的例子吗?我希望使用此func保存AJAX上载脚本中的数据: 该脚本可以在FireFox中使用,但不能在Safari、Chrome等浏览器中使用 想法?你有什么错误 也许这些链接会有所帮助: 您想研究使用cffile with action=“upload”上传文件:GetHttpRequestData()用于解码协议,如SOAP、XML-RPC和一些更复杂的REST-ful协议。HTTP文件上载通常使用multi

有人举过Coldfusion的GetHttpRequestData()的工作原理的例子吗?我希望使用此func保存AJAX上载脚本中的数据:

该脚本可以在FireFox中使用,但不能在Safari、Chrome等浏览器中使用

想法?

你有什么错误

也许这些链接会有所帮助:


您想研究使用cffile with action=“upload”上传文件:

GetHttpRequestData()用于解码协议,如SOAP、XML-RPC和一些更复杂的REST-ful协议。HTTP文件上载通常使用multipart/form数据MIME类型作为POST完成。看一下,GetHttpRequestData()似乎没有对多部分数据的任何特殊支持,这意味着您必须自己拆分和解码这些部分。这不是我的意思,如果你只是上传文件,那就完全没有必要了


或者(对于CF9来说是新的)应该足以处理文件上传,即使是通过AJAX上传脚本完成的上传。

您可能还想阅读关于该脚本的文章。正如valums所建议的,您应该能够从getHttpRequestData()内容中提取二进制数据(在需要时)

在我非常有限的测试中,它似乎可以与IE8/FF/Chrome/Opera配合使用。然而,我在Safari(windows)上运气不佳。看起来请求数据被弄乱了(或者可能被CF误解了?)。因此CF报告的最终内容类型标头不正确,导致http 500错误。当然,我没有对此进行广泛的测试

这是我的快速而肮脏的测试脚本(设计上很蹩脚…)


{“成功”:真的}
{error:“#上传错误#”}
<cfset uploadError = "" />
<cfif structKeyExists(FORM, "qqFile")>
    <!--- upload as normal --->
    <cffile action="upload" filefield="qqFile" destination="c:/temp" />
<cfelseif structKeyExists(URL, "qqFile")>
    <!--- save raw content. DON'T do this on a prod server! --->
    <!--- add security checks, etc... --->
    <cfset FileWrite( "c:/temp/"& url.qqFile, getHttpRequestData().content) />
<cfelse>
    <!--- something is missing ...--->
    <cfset uploadError = "no file detected" />
</cfif>

<!--- return status old fashioned way (for compatibility) --->
<cfif not len(uploadError)>
    {"success": true}
<cfelse>
    <cfoutput>{error": "#uploadError#"}</cfoutput>  
</cfif>