为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
ibeautiful 2021-11-05 15:42:50
我是 Stackoverflow、PHP 和 WP 主题制作的新手,我面临以下问题:我正在博客主页上开发图像轮播(位于home.php主题目录中),但我需要检索不同目录 ( /wordpress/wp-content/uploads/HP/carousel)上的图像,因为为了最终用户,我使用 Max Foundry 的 Wordpress 媒体库文件夹 ( https://it.wordpress.org/plugins/media-library-plus/ ) 为carousel 以简化为最终用户上传 carousel 的过程。我尝试了 PHP 函数opendir()或scandir()与glob()它一起使用,如果目录在同一个主题目录中,它就可以工作,但是我的客户应该使用诸如 FTP 和 Filezilla 之类的东西,我不希望他让他玩可能存在的工具可以破坏我的工作。所以我在网上寻找替代解决方案:我发现我应该使用类似ABSPATH或 idk 的东西,根本不起作用,它无法将字符串识别为路径。我还尝试了get_site_url()在页面的另一部分中用于类似目的的WP 功能,但在这里它不起作用。$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()在我把数组-我猜- 尝试打印时内容结果为空。我认为问题出在字符串的格式上,其中包含\和/,所以我将所有反斜杠都变成了正斜杠,但仍然没有,我无法检索目录中的图像(现在它已正确到达)。我怎样才能访问图像?
查看完整描述

2 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

你可以像这样使用 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';

}


查看完整回答
反对 回复 2021-11-05
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

我个人从未使用过媒体库+,但据我所知,它只会增强 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服务器来服务资源(HTML,CSS,JS,IMG ...)(nginx的,阿帕奇......)。


一个路径代表了当前位置的机器(C:\用户\你\图片/ Home /图片...)


该服务器通常只知道路径,以及如何“地图”在一起。您作为客户端应该永远无法看到文件路径,而只能看到 URL。这就是 wp_upload_dir 和 wp_get_attachment_url 等 wordpress 方法存在的原因,因此您不必在呈现 HTML 之前手动将 PATH 转换为 URL。


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


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


查看完整回答
反对 回复 2021-11-05
  • 2 回答
  • 0 关注
  • 236 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信