[PHP-users 4017] Re: NetscapeNavigator4.71でファイルのアップロードが出来ない

Yasuo Ohgaki php-users@php.gr.jp
Fri, 30 Nov 2001 16:33:24 +0900


KAWAI,Takanori wrote:

> 川合孝典です。
> #書いている途中でほとんど同じ内容だったので、補足ということで
> 
>>河治@山梨です。
>>
>>
>>> このソースですと、IE5.xまたはNetscape6.xだと問題なく動作するのですが、
>>>NetscapeNavigator4.7の場合に、$userFileの値がnoneになってしまいます。
>>>
>>PHP3で問題ないとのことなので、違っているかもしれませんが。
>>
>>アップロードするファイルを設定する側がEUCとなっていて、アップロード
>>するファイルのパス名に半角カナが含まれると同じ現象になります。シフト
>>JISにするとOKらしいです。
>>
> 以前のNescape(4.7頃まで)では、フォームが入っているページの漢字
> コードをベースにファイルをオープンしにいくようです。そのため、その
> ページのコードがEUCの場合、EUCに変換された名前でファイルを読
> み込みにいくので漢字などASCII以外の文字が入っているとブラウザが
> ファイルを読み込めず、ファイル名は渡してきても中身は空っぽという
> 現象がありました。
> 
> 一度、C:\AUTOEXEC.BATとか漢字が入っていないパス名で
> 試してみてはいかがでしょうか?


全くファイルアップロードが出来ていないと思ったので、Multi-byte文字
を含むファイル名の事は考えていませんでした:)

ブラウザがデータを送信しないのであれば関係ありませんが、4.2.0から
PHPが正しくハンドリンクできないPOSTデータを処理する為に、
HTTP_RAW_POST_DATAが用意されています。自前でPOSTデータを処理する必
要があるため面倒ですが、おかしなPOSTデータでも扱う事ができます。
(バグのあるBrowser等からのデータも処理できる)

# 少なくともASCII文字のファイル名のファイルアップロードはほぼ
# 正しく動作するはずなので、説明付きメッセージを表示するのが一
# 番簡単かつ汎用的と思います。

--
Yasuo Ohgaki




__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!  http://bb.yahoo.co.jp/