2

如何使用 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>';
         }
    }

请帮帮我,在此先感谢。

4

1 回答 1

1

我认为您应该为此编写自己的过滤器。我没有检查当前过滤器的来源,但它们都重命名/移动文件而不是复制它。如果您想创建图像的缩略图,您可能应该扩展 Zend 的调整大小过滤器并将结果复制到目标目录而不是移动/复制它。扩展这个类并更改几行应该不是很困难。

完成后,您应该使用自己的调整大小过滤器,而不是 ZF 的。观察添加过滤器的顺序。如果您先重命名文件,我不能 100% 确定您自己的调整大小过滤器是否可以确定文件的位置。

于 2015-09-29T19:17:44.940 回答