个性化阅读
专注于IT技术分析

如何打开服务器上另一个目录中的imgs文件?

我在Stackoverflow, PHP和WP主题制作方面还很陌生, 并且面临以下问题:我正在博客首页(位于主题目录中的home.php中)上开发图像轮播。检索不同目录(/ wordpress / wp-content / uploads / HP / carousel)上的图像, 因为出于最终用户的考虑, 我使用的是Max Foundry的Wordpress媒体库文件夹(https://it.wordpress.org/ plugins / media-library-plus /)为轮播创建特定的文件夹, 以简化最终用户上传轮播的过程。

我尝试了PHP函数opendir()或scandir()以及glob(), 如果目录位于主题目录的同一目录下, 则可以正常工作, 但是我的客户端应该使用FTP和Filezilla之类的东西, 但我不想让他玩可能会破坏我工作的工具。因此, 我在网上寻找了另一种解决方案:我发现我应该使用ABSPATH或idk之类的东西, 根本无法使用, 它无法将字符串识别为路径。我还尝试了WP函数get_site_url(), 该函数在页面的另一部分中也用于类似目的, 但是在这里它不起作用。

$dir = get_site_url().'/wp-content/uploads/HP/carousel/';

if (is_dir($dir)) //testing if it's a directory
  printf($dir);
else {
  echo 'not a directory';
}

使用ABSPATH的结果相同。然后很奇怪, 如果我尝试使用opendir打开目录, 则会返回错误。

我仍在学习, 找不到很好的参考资料来解释此函数和全局变量的工作原理, 所以我想我缺少了一些东西。我希望我的代码打开另一个本地目录, 因为它位于同一服务器上的另一个目录中, 特别是在其中构建主题的目录中。真的感谢你的宝贵时间和最终的帮助。

编辑:谢谢@cptnk和@Uri Chachick, 我不知道函数wp_upload_dir(), 现在将路径识别为目录, 但是如果我尝试使用opendir(), scandir()或glob读取其内容()我要放入的数组-我猜想-尝试打印内容时结果为空。我以为问题来自于同时使用\和/的字符串格式, 所以我将所有反斜杠都变成了正斜杠, 但还是一无所获, 我无法检索目录内的图像(现在可以正确访问该图像了)。如何获得图像?


#1


你可以像这样使用wp_upload_dir():

$upload_dir = wp_upload_dir();
$dir = $upload_dir['basedir'].'/HP/carousel/';

if(is_dir($dir))  //testing if it's a directory
    printf($dir);
else {
    echo 'not a directory';
}

#2


我个人从未使用过媒体库+, 但据我了解, 它仅增强了wordpress后端功能, 并且你仍以通常的方式与附件进行交互。

这意味着你仍然可以使用https://codex.wordpress.org/Function_Reference/wp_get_attachment_url之类的函数, 并在查询附件URL后对其进行检索。

如果你的代码要求你找到实际路径, 则也可以使用https://developer.wordpress.org/reference/functions/wp_upload_dir/

编辑:我想我现在知道了你实际要实现的目标或问题所在。我认为你对URL和PATH是个误解。

URL(统一资源定位符)不代表你的文件系统, 它用于通过Web服务器(nginx, apache …)提供资源(html, css, js, img …)。

PATH表示计算机上的当前位置(C:\ Users \ you \ pictures, / home / pictures …)

服务器通常只知道路径以及如何将它们”映射”在一起。作为客户端, 你永远不能看到文件路径, 而只能看到URL。这就是为什么存在诸如wp_upload_dir和wp_get_attachment_url之类的wordpress方法的原因, 因此在呈现HTML之前你不必手动将PATH转换为URL。

现在你可能想要从插件为你创建的文件夹中检索图像(堆栈溢出答案:如何在Wordpress Uploads目录中获取所有图像, 然后显示所有图像?)

我个人不喜欢这种方法, 原因有很多, 大多数人可能会创建自定义帖子类型或使用具有选项页功能(https://www.advancedcustomfields.com/add-ons/options-page/)的插件(如ACF)来持久化信息。

赞(0)
未经允许不得转载:srcmini » 如何打开服务器上另一个目录中的imgs文件?

评论 抢沙发

评论前必须登录!