如何在多个文件夹中上传一个文件?

时间:2015-09-29 06:19:47

标签: php zend-framework file-upload upload zend-file

如何使用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 个答案:

答案 0 :(得分:1)

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

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