我的程序正常接收到了上个页面传过来的$_FILES变量,我的一段程序是这样的:   
希望高人给我指点
定义变量
$error = "";
$msg = "";
$fileElementName = 'goodsImg';
$file_path = "/goodsImg\\";
if (is_uploaded_file($_FILES[$fileElementName]['tmp_name']))
{
    //如果写成$tmp = $_FILES[$fileElementName]['tmp_name']就出错
    $tmp = $_FILES[$fileElementName]['tmp_name']."\\";       /*这个if里的的语句没有执行,应该是move_uploaded_file函数返回了FALSE*/
    if (move_uploaded_file($tmp,$file_path."/".$_FILES[$fileElementName]['name']))
    {
$msg .= $_FILES[$fileElementName]['name'];
    }
    /*这个else中的语句被输出*/
    else             
    {
        $error.= "零时文件:".$tmp."目标文件:".$file_path."/".$_FILES[$fileElementName]['name'];
    }
}
else 
{
    $error.= "文件传送失败!";
}不报任何错误,输出:临时文件:/tmp/phppaOCL6f 目标文件/goodsImg/aaa.jpg
目标文件的路径是对的,而且也是可以写的。为什么if里面的回返回false呀!!!???
我服务器用的nginx谢谢了!

解决方案 »

  1.   

    $file_path = "/goodsImg\\"; 
    这个地址成了/goodImg\
    $tmp = $_FILES[$fileElementName]['tmp_name']."\\";  
    这个是tempname\
    $file_path."/".$_FILES[$fileElementName]['name']
    这样一来,最终的路径不就成了:
    /goodsImg/filename.jpg\bool move_uploaded_file ( string $filename , string $destination )
    按照你的代码,你是将tempname\移动到了/goodsImg/filename.jpg\似乎变成了新的目录了。
      

  2.   

    $tmp = $_FILES[$fileElementName]['tmp_name']."\\";
    =>
    $tmp = $_FILES[$fileElementName]['tmp_name'];$file_path = "/goodsImg\\"; 
    =>
    $file_path = "/goodsImg"; 
      

  3.   


    $tmp = $_FILES[$fileElementName]['tmp_name']."\\";
     改成
     $tmp = $_FILES[$fileElementName]['tmp_name'];
    之后函数move_uploaded_file($tmp,$file_path."/".$_FILES[$fileElementName]['name'])就出错了
      

  4.   


    我现在把$tmp = $_FILES[$fileElementName]['tmp_name']."\\";打印出来是/tmp/phppaOCL6f
    如果我把$tmp = $_FILES[$fileElementName]['tmp_name']."\\";后面的"\\"去掉,函数就出错了