protected function getUniqueTargetPath($uploadDirectory, $filename)
    {
        // Allow only one process at the time to get a unique file name, otherwise
        // if multiple people would upload a file with the same name at the same time
        // only the latest would be saved.

        if (function_exists('sem_acquire')){
            $lock = sem_get(ftok(__FILE__, 'u'));
            sem_acquire($lock);
        }

        $pathinfo = pathinfo($filename);
        $base = $pathinfo['filename'];
        $ext = isset($pathinfo['extension']) ? $pathinfo['extension'] : '';
        $ext = $ext == '' ? $ext : '.' . $ext;

        $unique = $base;
        $suffix = 0;

        // Get unique file name for the file, by appending random suffix.

        while (file_exists($uploadDirectory . DIRECTORY_SEPARATOR . $unique . $ext)){
            $suffix += rand(1, 999);
            $unique = $base.'-'.$suffix;
        }

        $result =  $uploadDirectory . DIRECTORY_SEPARATOR . $unique . $ext;

        // Create an empty target file
        if (!touch($result)){
            // Failed
            $result = false;
        }

        if (function_exists('sem_acquire')){
            sem_release($lock);
        }

        return $result;
    }
protected function getUniqueTargetPath($uploadDirectory, $filename)
    {
        // Allow only one process at the time to get a unique file name, otherwise
        // if multiple people would upload a file with the same name at the same time
        // only the latest would be saved.

        if (function_exists('sem_acquire')){
            $lock = sem_get(ftok(__FILE__, 'u'));
            sem_acquire($lock);
        }

        $pathinfo = pathinfo($filename);
        $base = $pathinfo['filename'];
        $ext = isset($pathinfo['extension']) ? $pathinfo['extension'] : '';
        $ext = $ext == '' ? $ext : '.' . $ext;

        $unique = $base;
        $suffix = 0;

        // Get unique file name for the file, by appending random suffix.

        while (file_exists($uploadDirectory . DIRECTORY_SEPARATOR . $unique . $ext)){
            $suffix += rand(1, 999);
            $unique = $base.'-'.$suffix;
        }

        $result =  $uploadDirectory . DIRECTORY_SEPARATOR . $unique . $ext;

        // Create an empty target file
        if (!touch($result)){
            // Failed
            $result = false;
        }

        if (function_exists('sem_acquire')){
            sem_release($lock);
        }

        return $result;
    }
protected function getUniqueTargetPath ( $ uploadDirectory , $ filename ) { // Allow only one process at the time to get a unique file name, otherwise // if multiple people would upload a file with the same name at the same time // only the latest would be saved. if ( function_exists ( 'sem_acquire' ) ) { $ lock = sem_get ( ftok ( __FILE__ , 'u' ) ) ; sem_acquire ( $ lock ) ; } $ pathinfo = pathinfo ( $ filename ) ; $ base = $ pathinfo [ 'filename' ] ; $ ext = isset ( $ pathinfo [ 'extension' ] ) ? $ pathinfo [ 'extension' ] : '' ; $ ext = $ ext == '' ? $ ext : '.' . $ ext ; $ unique = $ base ; $ suffix = 0 ; // Get unique file name for the file, by appending random suffix. while ( file_exists ( $ uploadDirectory . DIRECTORY_SEPARATOR . $ unique . $ ext ) ) { $ suffix += rand ( 1 , 999 ) ; $ unique = $ base . '-' . $ suffix ; } $ result = $ uploadDirectory . DIRECTORY_SEPARATOR . $ unique . $ ext ; // Create an empty target file if ( ! touch ( $ result ) ) { // Failed $ result = false ; } if ( function_exists ( 'sem_acquire' ) ) { sem_release ( $ lock ) ; } return $ result ; }
Returns a path to use with this upload. Check that the name does not exist,
and appends a suffix otherwise.
@param string $uploadDirectory Target directory
@param string $filename The name of the file to use.
Returns a path to use with this upload . Check that the name does not exist and appends a suffix otherwise .