0

我正在尝试使用 zend gdata 库将一个简单的 csv 文档上传到谷歌文档,但不知何故它卡住了。

我查看了所有用于上传的文件,发现卡在哪里:

上线:Zend/Gdata/Docs.php 229 后:$fs = $this->newMediaFileSource($fileLocation);

即使我查看了每个文件,我也找不到 newMediaFileSource() 函数。任何人都知道我该如何解决这个问题?

public function uploadFile($fileLocation, $title=NULL, $mimeType=NULL, $uri=NULL)
    {
        // Set the URI to which the file will be uploaded.
        if ($uri === NULL) {
            $uri = $this->_defaultPostUri;
        }
        // Right after this line it stops executing:
        $fs = $this->newMediaFileSource($fileLocation);
        if ($title !== NULL) {
            $slugHeader = $title;
        } else {
            $slugHeader = $fileLocation;
        }
4

1 回答 1

2

我和你有类似的问题。我也找不到该函数,所以我怀疑它正在使用魔术 php 调用,果然在 Zend_Gdata_App 第 1041 行:

public function __call($method, $args)
{
    if (preg_match('/^new(\w+)/', $method, $matches)) {
        $class = $matches[1];
        $foundClassName = null;
        foreach ($this->_registeredPackages as $name) {
             try {
                 // Autoloading disabled on next line for compatibility
                 // with magic factories. See ZF-6660.
                 if (!class_exists($name . '_' . $class, false)) {
                    require_once 'Zend/Loader.php';
                    @Zend_Loader::loadClass($name . '_' . $class);
                 }
                 $foundClassName = $name . '_' . $class;
                 break;
             } catch (Zend_Exception $e) {
                 // package wasn't here- continue searching
             }
        }

     ....
}

它基本上解析方法名称以检查“新”之后是否有任何包

它基本上创建了 Zend_Gdata_App_MediaFileSource 类型的对象

于 2012-02-24T15:23:13.613 回答