1

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

Zend 文档说明了这一点

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

文档没有说明“file2”是什么......实际文件的名称,输入字段的名称......

有人知道吗?

4

3 回答 3

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 重命名 ZendFramework您也可以使用这个答案。

于 2013-10-11T14:14:49.533 回答
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

于 2013-10-11T14:19:04.873 回答
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"]);
于 2013-12-09T20:29:05.990 回答