1

->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( );
4

2 に答える 2

2

上記のソリューションへの追加->setOptions(array('multiple' => 'multiple'))は、フォーム ファイル要素に追加することです。または、属性 multiple="multiple" を HTML フォームの入力タグに追加します。

Multiple は HTML5 属性であり、ファイル要素ごとに 1 つではなく、一度に複数のファイルを選択できます。

于 2012-11-14T15:28:25.303 に答える
1

setFileUpload()アップロードするファイルごとに 1 回だけ呼び出すことができます。各呼び出しは、アップロードされるファイルの配列にファイルを追加します。

ファイルの配列を同じファイル要素にアップロードする場合は、コードを次のように変更します。

$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
);
于 2012-02-11T20:06:28.950 に答える