Как загрузить один файл в несколько папок?

Как загрузить один файл в несколько папок с помощью Zendframe работы. Когда я пытался сохранить изображение только в основной папке, а не в подпапках. Вот код, который я использовал в своем контроллере.

 $apt    = new Zend_File_Transfer_Adapter_Http();
 $files  = $apt->getFileInfo();
 foreach($files as $file => $fileInfo) {
      $apt->addFilter('Rename', array('target' => 'images/practice/'.$fileInfo['name'],'overwrite' => true));
      $apt->addFilter(new Zend_Filter_File_Resize(array('width' => 500,'height' => 600  ,'keepRatio' => true,'directory'=>'images/practice/small/', 'overwrite'=>true)));
      $apt->addFilter(new Zend_Filter_File_Resize(array('width' => 300,'height' => 300,'keepRatio' => true,'directory'=>'images/practice/thumbs/', 'overwrite'=>true)));
 if ($apt->isUploaded($file)) {
            if ($apt->isValid($file)) {
                if ($apt->receive($fileInfo['name'])) {
                     $info = $apt->getFileInfo($file);
                }
             }
         }
         else{
         echo 'not uploaded<br>';
         }
    }

Пожалуйста, помогите мне, спасибо заранее.

1 ответ

Я думаю, что вы должны написать свои собственные фильтры для этого. Я не проверял источник текущих фильтров, но все они переименовывают / перемещают файл, а не копируют его. Если вы хотите создать миниатюры изображения, вам, вероятно, следует расширить фильтр изменения размера Zend и скопировать результат в целевой каталог вместо его перемещения / копирования. Не должно быть очень сложно расширить этот класс и изменить несколько строк.

После того, как вы это сделали, вы должны использовать свой собственный фильтр изменения размера, а не ZF. Следите за порядком добавления фильтров. Если вы сначала переименуете файл, я не уверен на 100%, сможет ли ваш собственный фильтр изменения размера определить местоположение файла.

Другие вопросы по тегам