Zend AddFilter重命名指定的文件只能不起作用

时间:2013-10-11 14:04:24

标签: php zend-framework

我的表单中有两个文件,我想给出单独的新名称。为此,我需要指定要更改的文件。

zend文档说明了这个

$upload->addFilter('Rename', 'C:\picture\uploads', 'file2');

文档未能说明'file2'是什么......实际文件的名称,输入字段的名称....

有人知道吗?

3 个答案:

答案 0 :(得分:1)

// Set a new destination path and limits it only to 'file2'
$upload->addFilter('Rename', 'C:\picture\uploads', 'file2');
  

在这种情况下,第三个参数用于验证文件名是否为   是file2然后它将覆盖否则它将在中添加一个新文件   夹。第三个参数是文件名的过滤器类型。

您也可以这样做:

$upload->addFilter('Rename',
           array('target' => 'C:\picture\uploads',
                 'overwrite' => true));

有关更多示例,请参阅addFilter Rename ZendFramework您还可以找到这个答案。

答案 1 :(得分:0)

为什么不直接搜索方法签名并检查?

/**
 * Adds a new filter for this class
 *
 * @param  string|Filter\FilterInterface $filter Type of filter to add
 * @param  string|array         $options   Options to set for the filter
 * @param  string|array         $files     Files to limit this filter to
 * @return AbstractAdapter
 * @throws Exception\InvalidArgumentException for invalid type
 */
public function addFilter($filter, $options = null, $files = null)

可在Zend\File\Transfer\Adapter\AbstractAdapter

中找到

答案 2 :(得分:0)

我想出了怎么做。

这是表格:

<input type="file" name="one">
<input type="file" name="two">

这在控制器中

       $renamefile1 = new Zend_Filter_File_Rename(array(
         'target'    => $path.'/file1.csv', // path to file
         'overwrite' => true
        ));

       //rename file 2 to file2
       $renamefile2 = new Zend_Filter_File_Rename(array(
         'target'    => $path.'/file2.csv', // path to file
         'overwrite' => true
        ));


       $names = $upload->getfileName();
       $file1 = $renamefile1->filter($names["one"]);
       $file2 = $renamefile2->filter($names["two"]);