$upfile变为$_FILES['upfile']['tmp']$upfile_name改为$_FILES['upfile']['name']试试

解决方案 »

  1.   

    成功的机器 register_globals=on
    不成功的机器 register_globals=off
      

  2.   

    楼主怎么拷贝客户机本地的文件?这样子好吗??
    http://cn.php.net/manual/zh/features.file-upload.php
    手册里是直接拷贝上传的临时文件,可能在这方面有区别吧。。
      

  3.   

    当 php.ini 中的 register_globals 被设置为 on 时,您可以使用更多的变量。例如,$userfile_name 等价于 $_FILES['userfile']['name'],$userfile_type 等价于 $_FILES['userfile']['type'] 等。请记住从 PHP 4.2.0 开始,register_globals 的默认值为 off,因此我们建议您不要依赖于改设置项而使用刚刚提到的那些附加变量。手册里有这样子的话,可能我上面的回复有点儿错误。
      

  4.   

    不过我按照你们说的方法改了。仍然不可以啊。
    另外探针上显示 register_globals 是打开的。
    <?$bimage="prob".substr($_FILES['upfile']['name'],-4);if (!@copy($_FILES['upfile']['tmp'],"$bimage"))
    {print("复制档案 $upfile $bimage 失败...<br>\n");
    }
    print("复制档案 $upfile $bimage 成功...<br>\n");?>
      

  5.   

    keaizhong(可爱钟) 
    http://cn.php.net/manual/zh/features.file-upload.php
    我刚才看了这个.觉得可能是路径的问题.
    然而服务器那端可能把错误提示都给屏蔽了。
    看不到上传的绝对路径.
    <?php
               //这里我把故意目录弄错.想能提示我绝对路径.但是没有什么提示..
               //而我又没有权利知道服务器的绝对路径.
               //请问这里我有什么办法吗???????
               $uploaddir = '“..\test/uploads';
               $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);           echo '<pre>';
               if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
                   echo "File is valid, and was successfully uploaded.\n";
               } else {
                   echo "Possible file upload attack!\n";
               }           echo 'Here is some more debugging info:';
               print_r($_FILES);           print "</pre>";       ?>
               //这里我把目录弄错.想能提示我绝对路径.但是没有什么提示..
               //而我又没有权利知道服务器的绝对路径.
               //请问这里我有什么办法吗???????真不好意思麻烦大家了。用php本身的程序都不行..
      

  6.   

    lanyd(山雨欲来风满楼) 
    会不会是那台服务器的权限问题,不给文件操作?
    感谢,,后来查了一下。确实是目录文件夹的权限问题。。