解决方案 »

  1.   

    验证图片是否存在
    if(file_exists($dir . $filename)) {
            echo $_FILES['Filedata']['tmp_name'] . " 文件已经存在. ";
        } 
      

  2.   

    例如<input type="file" name="photo">$uploads_dir = '/home/site/www/upload';
    $tmp_name  =  $_FILES [ "photo" ][ "tmp_name" ]
    $ext = array_pop(explode('.',$_FILES [ "photo" ][ "name" ]));
    $name  =  date('YmdHis').mt_rand(100000,999999).'.'.$ext;
    move_uploaded_file ( $tmp_name ,  " $uploads_dir / $name " );
      

  3.   

    用户文件夹可以这样写,用户登入后会有用户id吧,使用用户id来做文件夹名称$uid = 123;
    $uploads_dir = '/home/site/www/upload/'.$uid;
    $tmp_name  =  $_FILES [ "photo" ][ "tmp_name" ]
    $ext = array_pop(explode('.',$_FILES [ "photo" ][ "name" ]));
    $name  =  date('YmdHis').mt_rand(100000,999999).'.'.$ext;
    move_uploaded_file ( $tmp_name ,  " $uploads_dir / $name " );
      

  4.   

    重命名就好,自己指定规则保证不重名,比如md5或者用户ID+图片ID等等
    另外就是按时间创建多层文件夹,既分隔了有可能重名图片,也加快了磁盘查找速度,类似2014/06/09/abcd1234.jpg