如何使用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>';
}
}
请帮助我,提前致谢。
答案 0 :(得分:1)
我认为您应该为此编写自己的过滤器。我还没有检查当前过滤器的来源,但它们都重命名/移动文件而不是复制它。如果您想创建图像的缩略图,您应该扩展Zend的resize过滤器并将结果复制到目标目录而不是移动/复制它。扩展这个类并改变几行应该不是很困难。
一旦你做了,你应该使用自己的调整大小过滤器,而不是ZF的过滤器。观察添加过滤器的顺序。如果您首先重命名该文件,我不能100%确定您自己的调整大小过滤器是否可以确定该文件的位置。