[More info added]. See below the code.
//~ change upload dir
add_filter(\'upload_dir\', \'choose_upload_dir\');
//~ upload image
$upload = wp_handle_upload( $_FILES[\'your_form_input_name\'], array(\'test_form\' => false) );
//~ change upload dir back
remove_filter(\'upload_dir\', \'choose_upload_dir\');
function choose_upload_dir($upload) {
//~ your file to upload
$file_type = $_FILES[\'your_form_input_name\'][\'type\'];
//~ switch between file types
switch($file_type) {
//~ if type is \'png\' then upload subdir is \'/png\' and so on
case \'image/png\':
$type_dir = \'/png\';
break;
case \'image/jpeg\':
$type_dir = \'/jpg\';
break;
default:
$type_dir = \'/others\';
}
$upload[\'subdir\'] = $upload[\'subdir\'].$type_dir;
$upload[\'path\'] = $upload[\'basedir\'].$upload[\'subdir\'];
$upload[\'url\'] = $upload[\'baseurl\'].$upload[\'subdir\'];
return $upload;
}
?>
More info: 我偶然发现了一个有用的插件,它允许您为上传设置不同的目录:
Relocate Upload