Как загрузить один файл в несколько папок с помощью 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>';
}
}
Пожалуйста, помогите мне, спасибо заранее.
Я думаю, что вы должны написать свои собственные фильтры для этого. Я не проверял источник текущих фильтров, но все они переименовывают / перемещают файл, а не копируют его. Если вы хотите создать миниатюры изображения, вам, вероятно, следует расширить фильтр изменения размера Zend и скопировать результат в целевой каталог, а не перемещать / копировать его. Не должно быть очень сложно расширить этот класс и изменить несколько строк.
После того, как вы это сделали, вы должны использовать свой собственный фильтр изменения размера, а не ZF. Следите за порядком добавления фильтров. Если вы сначала переименуете файл, я не уверен на 100%, сможет ли ваш собственный фильтр изменения размера определить местоположение файла.
Других решений пока нет …