ниже - код, который я использую, чтобы проверить это:
<cfif structkeyexists(form, "submitted")>
<cfdump var="#getPageContext().getRequest().getParameterMap()#">
</cfif>
<cfoutput>
<form method="post" action="#cgi.script_name#?firstname=tony">
<input type="text" size="50" name="page[contents][][content]">
<input type="text" size="50" name="page[contents][][content]">
<input type="hidden" name="submitted" value="1">
<input type="submit">
</form>
</cfoutput>
то, что мы делаем, - это использование getPageContext (). GetRequest (). GetParameterMap () для извлечения хэша формы и областей URL во время запроса на публикацию. теперь все работает отлично, пока вы не установите атрибут enctype формы в «multipart / form-data», например так:
<cfif structkeyexists(form, "submitted")>
<cfdump var="#getPageContext().getRequest().getParameterMap()#">
</cfif>
<cfoutput>
<form method="post" action="#cgi.script_name#?firstname=tony" enctype="multipart/form-data">
<input type="text" size="50" name="page[contents][][content]">
<input type="text" size="50" name="page[contents][][content]">
<input type="hidden" name="submitted" value="1">
<input type="submit">
</form>
</cfoutput>
что происходит в этот момент, так это то, что ни одно из значений поля формы не возвращается в хеш, возвращаемом из getPageContext (). GetRequest (). GetParameterMap ().
Кто-нибудь знает, где и как мы можем получить эти данные или обходной путь?
единственная причина, по которой мы используем getPageContext (). GetRequest (). GetParameterMap (), заключается в том, что он возвращает массив в качестве значения переменной вместо списка с разделителями-запятыми, как при использовании области формы.
ОБНОВЛЕНИЕ: это на 8.0.1 с применением накопительного исправления 4.
ОБНОВЛЕНИЕ: Причина, по которой вы не можете использовать listToArray, заключается в том, что, скажем, у вас есть два поля с именем firstname и пользователь вводит значения для обоих полей (1 и 2). CF будет возвращать ключ в виде структуры с именем firstname с разделенным запятыми списком для двух значений (1,2). это здорово, но, скажем, пользователь вводит значения для поля, которые содержат запятые , такие как 1,2,3,4 для первого поля и 5,6,7,8 для второго поля. значение в структуре вида для имя будет 1,2,3,4,5,6,7,8 . это не правильно . теперь, так как getParameterMap () возвращает массив для значения, у меня будет два элемента , например, так: ["1,2,3,4", "5,6,7,8"] .
ОБНОВЛЕНИЕ: Попытка увидеть, что getHttpRequestData (). Содержимое будет возвращаться в соответствии с предложением Ли. Похоже, это пустой двоичный файл.
ОБНОВЛЕНИЕ: Спасибо вам, Ли, за то, что вы поняли это и без использования getPageContext полностью. хитрость заключалась в использовании метода getPartsArray () в области видимости формы. Я даже не знал, что это существовало!
Продолжайте идеи, пожалуйста!