我们创建了一个前端用户配置文件,用户可以在其中将文件上载到wp content/uploads中的一个特殊目录/
上传是通过一个名为ultimate member的插件完成的(在那里它将为每个用户上传创建一个特殊的目录(directoryname=用户ID)。
例如,我们希望有这样一种能力,用户可以将mp3曲目上传到他的个人资料中,并且可以在那里播放。。。
$upload_dir = wp_upload_dir();
$user_id = get_current_user_id();
$upload_to = $upload_dir[\'baseurl\'] . \'/ultimatemember/\' . $user_id;
// echo $upload_to;
echo list_files( $upload_to );
列表文件创建了一个错误,它说函数不存在,有人知道如何获取这些文件吗?
出于安全考虑,如果有人能告诉我哪条路最安全就好了。。。
我也尝试了glob(),但它返回了一个空数组。。。
// Abfragen der aktuellen Profil ID
$profile_id = um_profile_id();
um_fetch_user( $profile_id );
$url = get_home_url() . \'/wp-content/uploads/ultimatemember/\' . $profile_id .\'/\';
$files = glob( $url . \'*\' );
// print_r($files);
foreach ( $files as $file ) {
$str = $file . basename( $file );
echo $str;
echo do_shortcode(\'[audio src="\' . $str . \'"]\');
}
最合适的回答,由SO网友:KGreene 整理而成
您还应该检查该dir是否存在,并循环查看list\\u文件(如果存在)。
因为您要求获得这些文件的另一个想法:您可以使用php函数glob。它查找与模式匹配的路径名。您可以找到Glob PHP manual here.
$current_user = wp_get_current_user();
$upload_dir = wp_upload_dir();
$user_dirname = $upload_dir[\'basedir\'].\'/\'.$current_user->user_login;
if ( ! file_exists( $user_dirname ) ) {
wp_mkdir_p( $user_dirname );
return;
}
foreach (glob($user_dirname . "/*.mp3") as $filename) {
echo $filename;
echo do_shortcode(\'[audio src="/wp-content/uploads/\'. $current_user->user_login . \'/\' . $filename . \'"]\');
}