2011-08-02 1 views
2

私の問題が見つかりましたが、私は何をしようとしている4つの画像を持つことができますプロジェクトグループの編集フォームがあります。 4つの画像をすべてアップロードしようとすると、それは機能します.1つしかアップロードしても画像はアップロードされません。複数のファイル入力フィールドを使用します。 Zend

コード:HTMLフォーム

<?php 
    $langs = $this->langs; 
    $projectGroup = $this->projectGroup; 
?> 
<div id="box"> 
    <h3>Edit Project Group</h3> 
    <form id = "form" name = "form" action="<?php echo URLgenerator::getURL('project', 'group-edit', array('id' => $projectGroup->getId()), 'admin'); ?>" method="post" enctype='multipart/form-data'> 
     <?php 
      foreach($langs as $lang): 
       $langId = $lang->getId(); 
       $displayName = $lang->getDisplayName(); 
     ?> 
      <fieldset id="In<?php echo $displayName; ?>"> 
       <legend id ="<?php echo $langId?>"> 
        <?php echo $displayName; ?>: 
       </legend> 
       <label for="name-<?php echo $langId; ?>">Name: </label> 
       <input type="text" id="name-<?php echo $langId; ?>" name="name-<?php echo $langId; ?>" style="width: 500px;" value="<?php echo $projectGroup->getName($lang); ?>" /> 
       <br /> 
       <label for="imageOff-<?php echo $langId; ?>">Image Off: </label> 
       <input type="file" id="imageOff-<?php echo $langId; ?>" name="imageOff-<?php echo $langId; ?>" /> 
       <img src="<?php echo $projectGroup->getImageOffURL($lang); ?>" /> 
       <br /> 
       <label for="imageOn-<?php echo $langId; ?>">Image On: </label> 
       <input type="file" id="imageOn-<?php echo $langId; ?>" name="imageOn-<?php echo $langId; ?>" /> 
       <img src="<?php echo $projectGroup->getImageOnURL($lang); ?>" /> 
      </fieldset> 
     <?php 
      endforeach; 
     ?> 
     <div align="center"> 
      <input type="submit" value="Edit" id="button1" /> 
      <input type="reset" id="button2" /> 
     </div> 
    </form> 
</div> 

<script type="text/javascript"> 
    <?php 
     foreach($langs as $lang): 
      $langId = $lang->getId(); 
    ?> 
    $('#<?php echo $langId; ?>').click(function() { 
     $('#div-<?php echo $langId; ?>').toggle(); 
    }); 
    <?php 
     endforeach; 
    ?> 
</script> 

コード:editアクション

public function groupEditAction() 
{ 
    $id = $this->getRequest()->getParam('id'); 
    $projectGroup = new ProjectGroup($id); 

    $name = Array(); 
    $langs = LangFuncs::getAllLangs(); 
    foreach($langs as $lang) { 
     $langId = $lang->getId(); 

     $name[$langId] = $this->getRequest()->getParam("name-$langId"); 
    } 

    $projectGroup->edit(null, $name); 

    $upload = new Zend_File_Transfer_Adapter_Http(); 
    $upload->setDestination(URLgenerator::getTempFolder()); 
    $upload->receive(); 
    $info = $upload->getFileInfo(); 
    var_dump($info); 
    return; 
    foreach($langs as $lang) { 
     $langId = $lang->getId(); 
     try { 
      if($info["imageOff-$langId"]['tmp_name'] != '') { 
       $projectGroup->uploadImageOff($lang, $info["imageOff-$langId"]['tmp_name']); 
       unlink($info["imageOff-$langId"]['tmp_name']); 
      } 
      if($info["imageOn-$langId"]['tmp_name'] != '') { 
       $projectGroup->uploadImageOn($lang, $info["imageOn-$langId"]['tmp_name']); 
       unlink($info["imageOn-$langId"]['tmp_name']); 
      } 
     } 
     catch (Zend_File_Transfer_Exception $e) { 
      $this->_helper->redirector('image-upload', 'error', 'admin', array()); 
     } 
    } 

    $this->_helper->redirector('index', 'project', 'admin', array()); 
} 

そして、何私がのvar_dump行うときに私が取得:

array 
    'imageOff-1' => 
    array 
     'name' => string '1.gif' (length=5) 
     'type' => string 'application/octet-stream' (length=24) 
     'tmp_name' => string 'C:\wamp\tmp\php95C1.tmp' (length=23) 
     'error' => int 0 
     'size' => string '2248' (length=4) 
     'options' => 
     array 
      'ignoreNoFile' => boolean false 
      'useByteString' => boolean true 
      'magicFile' => null 
      'detectInfos' => boolean true 
     'validated' => boolean true 
     'received' => boolean false 
     'filtered' => boolean false 
     'validators' => 
     array 
      0 => string 'Zend_Validate_File_Upload' (length=25) 
     'destination' => string 'C:/wamp/www/EfCom/public/tmp' (length=28) 
    'imageOn-1' => 
    array 
     'name' => string '' (length=0) 
     'type' => null 
     'tmp_name' => string '' (length=0) 
     'error' => int 4 
     'size' => null 
     'options' => 
     array 
      'ignoreNoFile' => boolean false 
      'useByteString' => boolean true 
      'magicFile' => null 
      'detectInfos' => boolean true 
     'validated' => boolean false 
     'received' => boolean false 
     'filtered' => boolean false 
     'validators' => 
     array 
      0 => string 'Zend_Validate_File_Upload' (length=25) 
     'destination' => string 'C:/wamp/www/EfCom/public/tmp' (length=28) 
    'imageOff-2' => 
    array 
     'name' => string '' (length=0) 
     'type' => null 
     'tmp_name' => string '' (length=0) 
     'error' => int 4 
     'size' => null 
     'options' => 
     array 
      'ignoreNoFile' => boolean false 
      'useByteString' => boolean true 
      'magicFile' => null 
      'detectInfos' => boolean true 
     'validated' => boolean false 
     'received' => boolean false 
     'filtered' => boolean false 
     'validators' => 
     array 
      0 => string 'Zend_Validate_File_Upload' (length=25) 
     'destination' => string 'C:/wamp/www/EfCom/public/tmp' (length=28) 
    'imageOn-2' => 
    array 
     'name' => string '' (length=0) 
     'type' => null 
     'tmp_name' => string '' (length=0) 
     'error' => int 4 
     'size' => null 
     'options' => 
     array 
      'ignoreNoFile' => boolean false 
      'useByteString' => boolean true 
      'magicFile' => null 
      'detectInfos' => boolean true 
     'validated' => boolean false 
     'received' => boolean false 
     'filtered' => boolean false 
     'validators' => 
     array 
      0 => string 'Zend_Validate_File_Upload' (length=25) 
     'destination' => string 'C:/wamp/www/EfCom/public/tmp' (length=28) 

PSを。 たぶん私はこの一時名を取り、それを使って動作させることができますが、通常の状況では一時名には通常の拡張子であり、.tmpではなく、拡張子として働きます。 .tmpを取得すると、.jpg、.png、または.gif(アップロード機能の場合)でないため、何もしません。

アップロード機能も必要な場合は、コメントしてください。

+0

[複数のファイルをアップロードできません](http://stackoverflow.com/questions/6910787/cant-upload-multiple-files) – cweiske

答えて