"可是在另一些服务器上取会报与临时文件相关的错"
报的是什么错?另一些服务器和不报错的服务器有什么不同。在报错的服务器上直接使用表单上传(不使用该类)是否成功。检查一下该服务器的phpinfo里的upload_tmp_dir

解决方案 »

  1.   

    服务器都装的是win2000系统,报的错就是“上传的文件不存在”,这是才类执行到如上所述的Check_File()函数时出现的。因为“上传的文件不存在”是在验证临时文件的相关情况时出现的,其验证内容可看上诉代码。没试过用表单直接传,我想应该不是类的问题。各服务器上的upload_tmp_dir都没动过,用的都是默认的。
      

  2.   

    在服务器报错的机子上我截取到的表单过来的文件路径如下:Array ( [name] => 样品.jpg [type] => image/pjpeg [tmp_name] => C:\WINNT\TEMP\php13.tmp [error] => 0 [size] => 9894 ) 这表示文件已经成功的上传了,C:\WINNT\TEMP\php13.tmp就是上传时php生成的临时文件,你的工作就是把他复制到需要的地方请认真回答以下问题:
    1、Check_File()是类的方法还是独立的函数?
    2、$file_tmp_name是如何赋值的?
    3、注释掉检查函数后,Get_FileTmpName()能返回临时文件名吗?
      

  3.   

    目标目录有写的权限吗?
    $this->Get_FileUpPath().$this->Get_FileName()的路径正确吗?会不会少了/或\
    确定$file_tmp_name的值没有问题吗?
      

  4.   

    谢谢各位的关心了,这两天比较事多,还没来得及上来看看。
    to:xuzuning(唠叨)
    1、check_file()是上传类中的一个方法,是用来检测上传文件的相关信息的;
    2、$file_tmp_name是通过$_FILES["文件名"]["tmp_name"]获得;
    3、Get_FileTmpName()是用来获取临时文件的方法。to:chon81(当我遇上你…) 
    目标目录通过ftp赋予了最大的权限。另说明一点,我在我自己的机子上上传文件到目录也出现的是这个问题。
      

  5.   

    试试在前面合适的地方插入copy,先把那个临时文件拷贝一下,看是否成功。
    这样可以明确问题发生的地方