Metabox with file upload to custom directory

I will not follow the whole metabox thing, but Just to point some ” leads ” as you asked regarding the upload folder ..

The upload dir in wordpress is set via the wp_upload_dir() function – which is filterable ..

$uploads = apply_filters( 'upload_dir',
array(
    'path'    => $dir,
    'url'     => $url,
    'subdir'  => $subdir,
    'basedir' => $basedir,
    'baseurl' => $baseurl,
    'error'   => false,
) );

It is later used by the media_sideload_image , that uses wp_handle_upload – which are probably the ones you saw in those tutorials …

so, applying a filter is trivial as :

add_filter( 'upload_dir', 'my_custom_upload_dir_function' );

Mind you , that the array parts must be constructed and supplied by you ..

you can also change the upload dir like so, on the go inside the custom function :

$wp_upload_dir =  wp_upload_dir();
$my_sur = "_my_sufrfix";
$my_new_folder = $wp_upload_dir . $my_sur ;

now, you can use $my_new_folder with wp_mkdir_p()

wp_mkdir_p( $my_new_folder );

You will need permissions for that of course ..

chmod( $my_new_folder, 0644);

The other approach, which I sometimes use is simply to apply some non-wp related functions
like copy() , rename() and unlink()..

$path_parts = pathinfo($file); // we need to know the details ..
// 'dirname :: ' .  $path_parts['dirname'] . "\n";
// 'basename :: ' .  $path_parts['basename']. "\n";
// 'extension :: ' .  $path_parts['extension'] . "\n";
// 'filename :: ' .  $path_parts['filename'] . "\n"; // since PHP 5.2.0


    // $renamed_dest_path need to be constructed , can be done 
    // manually or with wp_upload_dir()
    if (!copy($file , $renamed_dest_path)) { 
        $debugtext .= "2 : failed to rename  $dest_path_2...\n";
            }

Finally, if you want , you can @unlink the original file…

There are cons and pros to this second approach, which I will not detail now .
I would assume that the first approach would be better for “normal” use in wp – but the second is very valuable for specific situations ..