Php Q:将文件发布到API

Php Q:将文件发布到API,php,api,zend-framework,file-upload,zend-framework2,Php,Api,Zend Framework,File Upload,Zend Framework2,在基于Zend Framework 2的应用程序中,我希望发送文件,有时发送文件,API将发送文件描述为文件名称/位置的数组。参数文件[]中显示的是一个文件数组,根据记录的答案判断。我已经在使用谷歌寻求帮助,但大多数都是基于向控制器发送文件,我想从控制器发送到外部API,那些解释如何在网络中进一步发送文件的内容对我的技能来说太难了。因此,我在这里请求一些帮助 我的问题是:框架是否已经有一些类来处理文件传输,以及如何将它们与现有代码结合起来 我在Zend Framework 2框架中的代码是: I

在基于Zend Framework 2的应用程序中,我希望发送文件,有时发送文件,API将发送文件描述为文件名称/位置的数组。参数文件[]中显示的是一个文件数组,根据记录的答案判断。我已经在使用谷歌寻求帮助,但大多数都是基于向控制器发送文件,我想从控制器发送到外部API,那些解释如何在网络中进一步发送文件的内容对我的技能来说太难了。因此,我在这里请求一些帮助

我的问题是:框架是否已经有一些类来处理文件传输,以及如何将它们与现有代码结合起来

我在Zend Framework 2框架中的代码是:

IndexController.php

<?php
namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

use Zend\Http\Request;
use Zend\Http\Client;
use Zend\Http\Cookies; // un used 
use Zend\Http\Header;
use Zend\Stdlib\Parameters;
use Zend\Json\Json; //un used

class IndexController extends AbstractActionController
{
    public function indexAction()
    {
        return new ViewModel();
    }


    public function authaddmessageAction()
     {

$client = new Client();
$client->setHeaders(array('Accept' => 'application/json'));
$client->setUri($apiURL."/auth_add_message.json");
$client->setMethod('POST');
$client->setAuth('username', 'userpassword');

$client->setFileUpload('/var/www/html/9161793448_5581163944_h.jpg', 'file'); // Added after the comment @TimFountain message has been added with no file.

$client->setParameterPost(array(
'text' => 'tresc to jest moja tresc',
'private'=>'TRUE',
//'access'=>'public',
//'show_at_main'=>'TRUE',
//'  file[]'=>'(optional) - file/files to add ',
'tags' => 'Tag1,Tag2 ',
//'title'=>'Hello Api!',
'api_key' => 'API_KEY'
 ));
$response = $client->send(); 
var_dump($response); //It just works :) Messange is visibe inside


/*
 * // Test some code, I don`t know from where get $formname 

$client->setFileUpload('/var/www/html/plik.jpeg', $formname);
    if($request->isPost()){
        $post= array_merge_recursive($request->getPost()->toArray(), $request->getFiles()->toArray());
        print_r($post);
    }
 */

     }
}
?>

Zend Http客户端文档中有一个关于文件上传的部分:@timfuntain谢谢你的帮助,我已经访问了提供的链接,如果文件存在,我已经使用了描述的方法<代码>$client->setFileUpload('/var/www/html/9161793448_5581163944_h.jpg',file')不幸的是,没有正确发送文件(可能第二个参数无效?)最后它工作了。谢谢你指出正确的方法。这促使我对第二个参数进行“反复试验”,并最终成功。