插件编写:访问刚刚上传的文件

时间:2019-04-02 作者:Yato

我很难找到以下问题的解决方案:

用户应该在我的插件菜单中上传一个文件;使用media\\u handle\\u upload(文件)将文件上载到media文件夹,其中文件来自\\u FILES数组-这非常有效。然而,插件应该访问同一个文件(CSV)来提取数据,并通过短代码将其显示在页面上。

然而,我无法在我的插件中找到如何访问该文件。我已经对此进行了调查:Access to Media Library, 这是:Accessing Media/Files outside the_content, 我试图在wordpress抄本中找到一些东西。然而,到目前为止,我在这件事上找不到任何线索。

目前,我读取文件内容的代码如下所示:

$my_file = trailingslashit( wp_upload_dir() ) . \'MyFile.csv\';
if (file_exists($my_file)) {
    return file_get_contents($my_file, FILE_USE_INCLUDE_PATH);
} else {
    return "No file found";
}
因此,我的问题是:我的插件如何访问上载到媒体文件夹但未连接到任何帖子等的文件?同样,我打算阅读文件的内容并进一步处理它们。

1 个回复
最合适的回答,由SO网友:Qaisar Feroz 整理而成

当您使用media_handle_upload() 要上载文件,它会在数据库中创建附件帖子,并返回附件的ID,或WP_Error 如果上载失败。附件的此ID用于访问上载的文件
See documentation here. 还有一个例子here.

因此,可以使用get_attached_file() 具体如下:

$my_file = get_attached_file( $attachment_id ); // Full path
Documentation for get_attached_file() is here.<我希望这能有所帮助。

相关推荐

为什么我的手写插件安装找不到`REQUEST_FILESYSTEM_Credentials`?

我试图编写一个插件安装程序,类似于TGMPA,但仅仅是为了它的核心功能,即实际安装插件。我已经确认了Plugin_Upgrader 是我所需要的,并决定效仿这一点。$plugin = THEME_DIR . \'/Inc/Plugins/my-shortcodes.zip\'; $options = array( \'package\' => $plugin, \'destination\' => WP_PLUGIN_DIR,