[PHP-users 9830] ファイルアップロードの不思議な現象

SEGAMI Takashi php-users@php.gr.jp
Fri, 6 Sep 2002 13:17:29 +0900


瀬上です。

現在、ファイルアップロードの不思議な現象に頭を悩ましています。
どなたか、原因がわかりました教えてください。

例えば、A:\README.txtというファイルがあったとき、fileフォームに
つぎのようにタイプミスして入力しました。(\をつけるの忘れた)

A:README.txt

すると、あたかもアップロードしたかのように振る舞いのですが、
うまくSTOCKされません。普通ならタイプミスでは、ファイルが存在
しないので、アップロード処理は行われないと思うのですが、違う
のでしょうか?
なぜかフロッピーのAドライブだけ、この現象が起こります。HDDの
CやDドライブで同じように適当なファイルを存在させ、タイプミスを
しても、アップロード処理は行われません。

テスト環境を示します。バージョン等、なにも言わないで下さい!
OS:		Windows 2000 SP1
WWWサーバ:	IIS 5.0
PHP:		4.1.2 (ISAPI)
php.ini:	register_globals=On

いかに示す簡単なファイルアップロードのPHPファイルでも、起こります。
皆さんところでは、この現象は起こらないでしょうか?
申し訳ないですが、他のバージョンや別の環境での結果を教えてください。
宜しくお願いします。

----upload.php---------------------------------------------------
<html>
<body>
<form enctype='multipart/form-data' method='POST'>
ファイルアップロードテスト
<?php
define (STOCKDIR, 'd:\temp');	// ←適当に変えてください。
// register_globals=Onの場合
if (isset($ul1)) {
  echo "<br>UPLOAD 1 : ".$ul1;
  if ($ul1 != "none") {
    echo " : ".$ul1_name." : ";
    $dstfile = STOCKDIR."/".$ul1_name;
    if (copy($ul1, $dstfile)) {
      echo $ul1_size." bytes";
      if (is_file($dstfile))
        echo " : stocksize=".filesize($dstfile)." bytes";
      else
        echo " : File not found!";
    }
    else
      echo "FAILED";
  }
}
?>
<input type='hidden' name='MAX_FILE_SIZE' value='2000000'>
<br><input type='file' name='ul1' size='80' maxlength='255'>
<br><input type='submit' name='action' value='アップロード'>
</form>
</body>
</html>
-------------------------------------------------------------------
/*
 * 瀬上 孝司 / SEGAMI Takashi <sage@tokyo.microcad.co.jp>
 * 株式会社マイクロ・シー・エー・デー 第2システム開発室
 */