Gemäß RFC, in multipart/form-data content-disposition Header Dateiname Feld als Parameter HTTP in Anführungszeichen String - Zeichenfolge zwischen Quites, wo Zeichen '\' kann entkommen irgendein anderes ASCII-Zeichen.Parsen des Headers content-disposition header in multipart/from-data
Das Problem ist, Webbrowser tun es nicht.
IE6 sendet:
Content-Disposition: form-data; name="file"; filename="z:\tmp\test.txt"
erwartete Statt
Content-Disposition: form-data; name="file"; filename="z:\\tmp\\test.txt"
die als z:tmptest.txt
nach Regeln analysiert werden soll, anstatt z:\tmp\test.txt
.
Firefox, Konqueror und Chrome kann nicht entkommen "Zeichen zum Beispiel:
Content-Disposition: form-data; name="file"; filename=""test".txt"
Statt
erwartetContent-Disposition: form-data; name="file"; filename="\"test\".txt"
So ... wie würden Sie mit diesem Thema befassen vorschlagen
?Hat jemand eine Idee?
"Gibt es einen Grund, dass Sie diesen Dateinamen überhaupt analysieren müssen?" - ja ich möchte den Dateinamen wissen;). "Zumindest ist die eine Sache, die konsistent ist, dass der Dateiname Teil der Kopfzeile mit einem doppelten Anführungszeichen endet," Die Dateinamen und Name Felder sollten nicht in dieser bestimmten Reihenfolge kommen, so ist es eine schlechte Idee zu nehmen, dass Dateiname mit der letzten endet Anführungszeichen. – Artyom
Wollen! = Brauchen. ;) Ok, also ist zumindest garantiert, dass es mit "" oder mit "" endet; '- mit diesem Mangel an Konsistenz müssen Sie einige Zugeständnisse machen, wie sich auf die Tatsache verlassen, dass Benutzer' '' nicht in der Mitte ihrer Dateinamen setzen :) Alternativ verwenden Sie ein Web-Framework, das unterstützt ein Best-Effort-Parsing dieses Attributs für Sie? –