使用Zend_Rest_Client发布文件

时间:2011-12-28 16:41:09

标签: php file zend-framework rest post

我想使用Zend_Rest_client将文件发布到某个网址,如下所示:

 $client = new Zend_Rest_Client('http://example.org/');
    $client->arg('value1');
    $client->arg2('value2');
    $client->restPost();

我想在请求正文中发布一个文件。怎么可以这样做?

1 个答案:

答案 0 :(得分:2)

此时不可能。虽然您可以访问其余客户端使用的基础Zend_Http_Client对象,但在执行其余请求之前会重置传递给它的所有选项。

由于此重置,您将无法上传文件,因为Zend_Rest_Client不支持它。

restPost的函数体如下:

public function restPost($path, $data = null)
{
    $this->_prepareRest($path);
    return $this->_performPost('POST', $data);
}

不幸的是,_prepareRest()调用self::getHttpClient()->resetParameters()->setUri($this->_uri);会清除您设置的任何文件上传或其他帖子参数,目前无法阻止它。

在Zend Framework问题跟踪器上查看此问题Cannot send file using Zend_Rest_Client。看起来有一些关于补丁的讨论,但似乎不会很快集成这个功能。