使用Zend gdata上传文档

时间:2011-10-31 21:01:06

标签: php zend-gdata

我正在尝试使用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;
        }

1 个答案:

答案 0 :(得分: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
             }
        }

     ....
}

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

它基本上创建了Zend_Gdata_App_MediaFileSource

类型的对象