Coldfusion GetHttpRequestData ()? - PullRequest
       7

Coldfusion GetHttpRequestData ()?

0 голосов
/ 05 августа 2010

У кого-нибудь есть пример того, как работает ColdHusion GetHttpRequestData ()?Я хочу использовать эту функцию для сохранения данных из сценария загрузки AJAX: http://valums.com/ajax-upload/

Этот сценарий работает в FireFox, но не в Safari, Chrome и т. Д. *

Идеи?

Ответы [ 4 ]

1 голос
/ 05 августа 2010

Вы также можете прочитать эту недавнюю ветку об этом скрипте.Как подсказывает valums, вы должны иметь возможность извлекать двоичные данные из getHttpRequestData (). Content (при необходимости).

В моих очень ограниченных тестах, это, казалось, работало нормально с IE8 /FF / Chrome / Opera.Однако мне не повезло с Safari (windows).Казалось, что данные запроса были искажены (или, возможно, неправильно интерпретированы CF?).Таким образом, окончательный заголовок типа контента, о котором сообщает CF, был неверным, что вызвало ошибку http 500.Конечно, я не проверял это всесторонне.

Вот мой быстрый и грязный тестовый скрипт (хромает по замыслу ...)

<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>
1 голос
/ 05 августа 2010
0 голосов
/ 05 августа 2010

GetHttpRequestData () предназначен для декодирования таких протоколов, как SOAP, XML-RPC и некоторых из более сложных протоколов REST.Загрузка файлов HTTP обычно выполняется как POST с использованием MIME-типа multipart / form-data.Глядя на http://www.cfquickdocs.com/it, не видно, что GetHttpRequestData () имеет какую-либо специальную поддержку для составных данных, что означает, что вам придется разбивать и декодировать части самостоятельно.Не мое представление о веселье, и совершенно ненужно, если вы просто загружаете файлы.

или же(нового для CF9) должно быть вполне достаточно для обработки загрузки файлов, даже если это выполняется с помощью сценария загрузки AJAX.

0 голосов
/ 05 августа 2010

Вы хотите изучить использование cffile с действием = "загрузить" для загрузки файла: http://cfdocs.org/cffile

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...