我的表单中有两个文件,我想分别给出新的名称。为此,我需要指定要更改的文件。
Zend 文档说明了这一点
$upload->addFilter('Rename', 'C:\picture\uploads', 'file2');
文档没有说明“file2”是什么......实际文件的名称,输入字段的名称......
有人知道吗?
我的表单中有两个文件,我想分别给出新的名称。为此,我需要指定要更改的文件。
Zend 文档说明了这一点
$upload->addFilter('Rename', 'C:\picture\uploads', 'file2');
文档没有说明“file2”是什么......实际文件的名称,输入字段的名称......
有人知道吗?
// 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您也可以使用这个答案。
为什么不直接搜索方法签名并在那里检查呢?
/**
* 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
我想出了怎么做。
这是表格:
<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"]);