ZendFramework - Как загрузить несколько файлов, используя 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="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>
PHP: (после основной загрузки, он нажимает на панель администратора, которая является другим постом).
....
if (!$upload->isValid()) // /file/csvupload
{
....
$client = new Zend_Http_Client(); // upload now to administrator another copy
$client->setUri($uri);
$client->setParameterPost(array('test'=>'test');
//how do i tell here to use those same file[] which are multiple?
$client->setFileUpload('/tmp/Backup.tar.gz', 'bufile');
$client->request( );
2 ответа
Вы можете просто позвонить 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(array('multiple' => 'multiple'))
к элементу файла формы. Или просто атрибут множественного = "несколько" для вашего тега ввода HTML-формы.
Множественный является атрибутом HTML5 и позволяет одновременно выбирать несколько файлов вместо одного для каждого элемента файла.