您好我正在尝试使用Zend_Form创建一个表单,该表单将使我的用户能够将无限数量的文件上传到我的网站,这是通过javascript完成的。
像
这样的东西<script type="text/javascript">
$(document).ready(function(){
var image_uploade_i = 0;
$('#upload_more').click(function() {
image_uploade_i++;
$('#upload_list').append('<div id="image_uploade_id_'+image_uploade_i+'" style="display: none;"><input type="file" name="image[]" /><br /></a>');
$('#image_uploade_id_'+image_uploade_i).slideDown('slow');
});
});
</script>
<?=$this->translate('Add images')?>
<form action="" method="post" enctype="multipart/form-data">
<div id="upload_list">
<input type="file" name="image[]" /><br />
<input type="file" name="image[]" /><br />
<input type="file" name="image[]" /><br />
</div>
<a href="#" id="upload_more"><?=$this->translate('Upload another image')?></a><br />
<input type="submit" name="image_uploade" value="<?=$this->translate('Upload images')?>" />
</form>
但是我无法知道如何用Zend_From创建这样的东西,我想在这个问题上使用Zend_Form的唯一原因是验证uploadet文件。
$element = new Zend_Form_Element_File('image');
$element->setRequired(true)
->setLabel('Profile image')
->setDestination($store)
->setValueDisabled(true)
->addValidator(new Zend_Validate_File_ImageSize(array(
'minheight' => 100, 'minwidth' => 150,
'maxheight' => 1920, 'maxwidth' => 1200)))
// File must be below 1.5 Mb
->addValidator(new Zend_Validate_File_FilesSize(array('max' => 1572864)))
->addValidator(new Zend_Validate_File_IsImage());
如果有任何一个可以帮助我设置它,我会非常满意:D
答案 0 :(得分:1)
$this->setAttrib('enctype', 'multipart/form-data');
$this->addElement('file', 'files', array(
'label' => 'Pictures',
'validators' => array(
array('Count', false, array('min'=>1, 'max'=>3)),
array('Size', false, 102400),
array('Extension', false, 'jpg,png,gif')
),
'multiFile'=>3,
'destination'=>APPLICATION_PATH . '/tmp'
));
所以尝试setMultiFile并可能使用Count
验证器来保持限制。
我从以下来源编译了此示例:http://framework.zend.com/manual/en/zend.form.standardElements.html#zend.form.standardElements.file