好消息:
坏消息:
用户必须从任何宽度或高度上传文件 - 但不得大于8MB。 该文件必须存储在特定文件夹(或数据库列)中。 必须在特定文件夹(或数据库列)上生成缩略图。
这些图像必须与特定记录相关联。
这是一个“运作方式”问题,我意识到这里涉及的代码很多。
所以:
我们首先创建表单元素以支持多次上传,如下所示:
$element = new Zend_Form_Element_File('multifile');
$element->setAttrib('multiple', true);
$element->setIsArray(true);
然后,我们需要添加一些验证并允许扩展;
这是要走的路吗?我应该有更多的步骤吗?我错过了什么。我之前从未这样做过,但我认为这是一次挑战。
答案 0 :(得分:4)
首先,您创建一个表单。这里并不太复杂:
$this->addElement('File','Filedata');
$this->Filedata
->setLabel('Select images')
->setDestination('somepath') //define & create it somewhere earlier ;)
->addValidator('Size', false, 1024000)
->addValidator('Extension', false, 'jpg,png,gif')
->setMultiFile(5)
->addValidator('Count', false, array('min'=>0,'max' => 5))
;
在控制器中,您会收到图像。他们将拥有临时随机名称,如果您愿意,可以稍后保留(我通常这样做)。
$fileinfo = $form->Filedata->getFileInfo();
$path = 'somepath'; //make sure it exists
for($i=0;$i<5;$i++) {
if($fileinfo['Filedata_'.$i.'_']['tmp_name']) {
$img = new Imagick($fileinfo['Filedata_'.$i.'_']['tmp_name']);
// image processing goes here
file_put_contents('somepath',$img);
}
}
就是这样;)