Быстрая версия: Нужно ли кодировать имена параметров "форм" с использованием стандартной кодировки multipart / form-data ?
Более длинная версия: Форма загрузки на 1fichier.com (служба для загрузки больших файлов) использует следующее для указания параметра файла для загрузки:
<input type="file" name="file[]" size="50" title="Select the files to upload" />
имя параметра file [] (обратите внимание на квадратные скобки).
Использование LiveHTTPHeaders Я вижу, что параметр отправляется следующим образом (то есть с квадратными скобками) при отправке формы в Firefox.Однако для программы , которую я пишу на Python, я использую модуль poster , чтобы иметь возможность загружать файлы, используя стандартный multipart / form-data кодирование.Если я введу имя параметра в скобках, оно будет отправлено следующим образом:
file%5B%5D
Внутренне, плакат кодирует имена параметров, используя эту функцию:
def encode_and_quote(data):
"""If ``data`` is unicode, return urllib.quote_plus(data.encode("utf-8"))
otherwise return urllib.quote_plus(data)"""
if data is None:
return None
if isinstance(data, unicode):
data = data.encode("utf-8")
return urllib.quote_plus(data)
urllib.quote_plus Документация гласит, что это «требуется только для цитирования значений HTML-форм при построении строки запроса для перехода в URL».Но здесь мы выполняем POST, поэтому значения формы не указываются в URL.
Итак, их все еще нужно кодировать, или это ошибка плаката, чтобы сделать это?