获取上载目录中的文件数组

时间:2019-10-21 作者:LovinQuaQua

我们创建了一个前端用户配置文件,用户可以在其中将文件上载到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 . \'"]\');
}

1 个回复
最合适的回答,由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 . \'"]\');
}

相关推荐

Custom CSS In Uploads Folder

我想知道上传文件夹中是否有自定义CSS文件。我从以前的开发人员那里继承了一个自定义主题,前端的大量样式都是从这个样式表派生出来的,它同样不在主题或插件文件夹中,而是wp-content/uploads 文件夹我正在努力找出它是如何推导出来的,但它确实存在。这是否被视为不良做法,或者是否有这样的用例?我相信之前的开发人员提到了Visual Composer或JS Composer以及编译更少的文件。。。但我对此不确定,他已经失去了联系,我想知道为什么我们要以这种方式使用样式表,因此这个问题是关于最佳实践的,