RFC によると、multipart/form-data content-disposition ヘッダーのファイル名フィールドは、パラメーターとして HTTP 引用符で囲まれた文字列を受け取ります。文字 '\' は他の ASCII 文字をエスケープすることができます。
問題は、Web ブラウザーがそれを行わないことです。
IE6 送信:
Content-Disposition: form-data; name="file"; filename="z:\tmp\test.txt"
期待の代わりに
Content-Disposition: form-data; name="file"; filename="z:\\tmp\\test.txt"
z:tmptest.txt
の代わりにルールに従って解析する必要がありz:\tmp\test.txt
ます。
Firefox、Konqueror、および Chrome は " 文字をエスケープしません。たとえば、次のようになります。
Content-Disposition: form-data; name="file"; filename=""test".txt"
期待の代わりに
Content-Disposition: form-data; name="file"; filename="\"test\".txt"
では...この問題にどのように対処することをお勧めしますか?
誰にもアイデアはありますか?