【问题标题】:Get gps metadata from image in dropbox using PHP使用 PHP 从 Dropbox 中的图像获取 gps 元数据
【发布时间】:2025-12-20 03:50:12
【问题描述】:

我正在尝试使用 PHP 和 Dropbox API 获取位于 Dropbox 中的图像的特定元数据。 在我连接到 Dropbox 并列出图像后,我会这样做:

 $md = $dbxClient->getMetadata($path);
 print_r ($md);

$path 是我的图像的目录。这非常有效,但我需要获取更多关于 GPS 位置的元数据。在 Dropbox API(Python、PHP、Java 等的一般视图)中,它说我必须将“include_media_info”设置为 true 才能获取 gps 元数据。 转到 PHP 部分,它只有一个参数的函数 GetMetaData():字符串 ($path 文件或文件夹的 Dropbox 路径)。 有没有办法使用 Dropbox API for PHP 获取详细的元数据?

【问题讨论】:

    标签: php metadata dropbox-api


    【解决方案1】:

    如您所述,PHP 库不支持 include_media_info 参数,因此您需要修改库的源代码以添加支持。

    例如你可以添加这个方法:

    function getMetadataWithMediaInfo($path)
    {
        Path::checkArg("path", $path);
        return $this->_getMetadata($path, array("include_media_info" => "true"));
    }
    

    【讨论】:

    • 你确定它是 include_media_info,我阅读了文档,对我来说它看起来像 list
    • 是的。见dropbox.com/developers/core/docs#metadatalist 参数控制在调用文件夹元数据时是否返回文件夹内容列表。 include_media_info 控制是否在响应中返回 photo_info/video_info 字典。
    • 嗯。在我的 client.php 文件中添加这个函数并在我的脚本中执行它似乎也不起作用。
    • 成功了。我有两个不同的保管箱文件夹并修改了错误的一个。再次非常感谢。
    【解决方案2】:

    我看了源码,试试这个:

    $md = $dbxClient->_getMetadata($path,array("list" => "true"));
    

    或编辑核心getMetadata并将其硬编码参数list更改为true

    【讨论】:

    • 感谢您的回答。您建议的线路不起作用。它在获取元数据中返回 _ 的错误原因。您知道 getMetada 方法在哪个文件夹中吗?
    • 嗯。我找到了该文件夹,并将列表更改为 true。但这并没有给我不同的结果。我知道这张图片有与 gps 相关的元数据,但带有元数据的数组没有返回任何东西!有什么想法吗?
    • 也许在某些情况下 Dropbox 会剥离数据?