Quick-Version: Werden die Namen der Parameter von "Formularen" gesendet, die den Standard multipart/form-data Codierung müssen codiert werden?Müssen Formular-Parameternamen beim POST verschlüsselt werden?
Längere Version: Die Upload-Formular auf 1fichier.com (ein Service, große Dateien laden) verwendet die folgende Datei Parameter, um laden:
<input type="file" name="file[]" size="50" title="Select the files to upload" />
Der Name des Parameters Datei [] (beachten Sie die Klammern).
Verwendung von LiveHTTPHeaders Ich sehe, dass der Parameter wie folgt (d. H. Mit Klammern) gesendet wird, wenn das Formular in Firefox gesendet wird. Aber für eine program Ich schreibe in Python, verwende ich das poster Modul, um Dateien mit dem Standard multipart/form-data Codierung hochladen können. Wenn ich die Parameternamen mit den Klammern gibt, wird es wie folgt gesendet:
file%5B%5D
Intern Plakat der Namen der Parameter kodiert diese Funktion verwenden:
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)
Die urllib.quote_plus Dokumentation sagt, dass dies nur "erforderlich für das Zitieren von HTML-Formularwerten beim Erstellen einer Abfragezeichenfolge zum Aufrufen einer URL". Aber hier machen wir einen POST, also gehen die Formularwerte nicht in die URL.
Also, müssen sie noch codiert werden, oder ist es ein Fehler des Posters, dies zu tun?
Danke, Autor;) – Emilien