Php ZendFramework-如何使用zend_http_客户端上载多个文件?

Php ZendFramework-如何使用zend_http_客户端上载多个文件?,php,zend-framework,zend-http-client,Php,Zend Framework,Zend Http Client,如何使用->setFileUpload()上载多个文件 例如,我有: <form method="post" action="/file/csvupload" target="myadmin_b20301" enctype="multipart/form-data"> <input type="text" name="test" id="test" value=""> <input type="file" name=

如何使用->setFileUpload()上载多个文件

例如,我有:

<form method="post" 
      action="/file/csvupload" 
      target="myadmin_b20301" 
      enctype="multipart/form-data">
  <input type="text" name="test" id="test" value="">
  <input type="file" name="file[]" id="attachment" class="attachment">   
  <input type="file" name="file[]" id="attachment" class="attachment">   
  <input type="file" name="file[]" id="attachment" class="attachment">   
  <input type="submit" name="submit" id="submit" value="Update">              
</form>

您只需为每个要上载的文件调用一次
setFileUpload()
。每次调用都会将文件添加到将上载的文件数组中

如果要将文件数组上载到同一文件元素,请将代码更改为:

$client->setFileUpload('/tmp/Backup.tar.gz',    'bufile[]');
$client->setFileUpload('/tmp/DB.Backup.tar.gz', 'bufile[]');
在文件名上使用数组括号表示法,就像在HTML中一样

这导致:

$_FILES = array(
    'name' => array(
        0 => 'Backup.tar.gz',
        1 => 'DB.Backup.tar.gz',
    ),
    'tmp_name' => array(
        0 => '/tmp/php63832' // Backup.tar.gz
        1 => '/tmp/php33248' // DB.Backup.tar.gz
    ),
    // etc
);

对上述解决方案的一个补充是向表单文件元素添加
->setOptions(数组('multiple'=>'multiple'))
。或者只是将属性multiple=“multiple”添加到HTML表单输入标记中

Multiple是HTML5的一个属性,允许同时选择多个文件,而不是每个文件元素选择一个文件

$_FILES = array(
    'name' => array(
        0 => 'Backup.tar.gz',
        1 => 'DB.Backup.tar.gz',
    ),
    'tmp_name' => array(
        0 => '/tmp/php63832' // Backup.tar.gz
        1 => '/tmp/php33248' // DB.Backup.tar.gz
    ),
    // etc
);