[PHP-users 24863] multipart/form-dataで、\マークでエスケープされる

keiji keiji @ help-js.com
2005年 3月 14日 (月) 16:17:26 JST


渡邉と申します。

SJISで、multipart/form-dataでアップロード時、ファイル名が
化けてしまいます。

通常の文字に関しては、過去ログを参考に以下のソースで解決
しました。(例:"表示")

 if(get_magic_quotes_gpc()){
  $src = stripslashes($src);
 }

ですが、ファイル名の場合、例えば "c:\data\表示.pdf" の
ようなファイル名の場合に "c:\data\表\示.pdf" としてデータが
渡ってくるのか、以下を実行すると "示.pdf"となってしまいます。
echo $_FILES["filename"]["name"]

どなたか解決方法をご存知ないでしょうか。よろしくお願いします。

RedHat Enterprise Linux ES v.3
PHP 4.3.2

※php.iniでは
mbstring.http_output = EUC-JP
mbstring.internal_encoding = EUC-JP
ですが、ソース内で
mb_http_outout("SJIS");
mb_internal_encoding("SJIS");
としています。



PHP-users メーリングリストの案内