function storeImage(){
//    $tmp = $_ENV[TEMP];
    $pathname = ROOT.'images\shangpin';
//    mkdir($pathname,0777);
    $filename =$_FILES[shangpin_pic][tmp_name];
    //更改文件權限,使其能移動
    if(chmod($pathname,0777)){
        echo '文件權限更改成功';
    }
//    echo getcwd();
    $destination =$pathname;
    echo $filename;
    echo $destination;
//    chmod($destination, 0777);
//    copy($filename, $destination);
    move_uploaded_file($filename, $destination);
}
文件權限更改成功C:\WINDOWS\temp\php85.tmpD:\AppServ\www\shop\images\shangpin
Warning: move_uploaded_file(D:\AppServ\www\shop\images\shangpin) [function.move-uploaded-file]: failed to open stream: Permission denied in D:\AppServ\www\shop\include\inc.php on line 107Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\WINDOWS\temp\php85.tmp' to 'D:\AppServ\www\shop\images\shangpin' in D:\AppServ\www\shop\include\inc.php on line 107
Array ( [shangpin_pic] => Array ( [name] => foo.jpg [type] => image/jpeg [tmp_name] => C:\WINDOWS\temp\php85.tmp [error] => 0 [size] => 26447 ) )

解决方案 »

  1.   

    Permission denied很明显,是权限不够,导致无法移动文件到相应目录
      

  2.   

    chmod($pathname,0777)是UNIX系统的,如果没错得话对windows似乎没有用既然用windows系统,应该把存放移动的图片文件夹权限开起来!直接到文件夹那边去操作(把文件的权限开起来)!
      

  3.   

    move_uploaded_file 的第二个参数是文件名,而不是目录名有几个地方是需要注意的:
    $pathname = ROOT.'images\shangpin';
    应写作
    $pathname = ROOT.'images/shangpin';
    以确保可跨平台chmod($pathname,0777)
    应写作
    chmod($pathname,0666)
    给上传文件的目录以“执行”权,存在安全隐患