This class is for uploading files. It supports 3 types of upload:
- flash upload. Upload will be carried through by flash.
Mode can be set by setMode('plain') - plain mode is not available with AJAX form setMode('iframe') setMode('flash')
by Default mode is iframe.
allowMultiple(boolean=true) this function will allow you to specify whether you want user to upload multiple files.
by default, single mode is used
Mode Support. You can use setModel('filestore/File'); This will use the model for file upload handling. You can specify your own model, which derives from either filestore or filestore Field value will always contain "id" of uploaded file. If multiple file upload is permitted, field will contain comma-separated list of IDs.
Example1: Simple use with model
Example2: Customizing field
$upl=$form->addField('upload','photo_id','Photo') ->setController('filestore/Image') ->allowMultiple(false) ; $upl->template->set('after_field','Max size: 500k');
Example3: Specifying inside Model
Example4: Use of your custom model
$this->api->stickyGET('user_id'); $myfile=$this->add('filestore/Image'); $myfile->join('user_images.file_id')->setMasterField('user_id',$_GET['user_id']); $form->addField('upload','photo') ->setNoSave()->setModel($myfile);
This last example will implement many-to-many relationship between file object and user_id. This is implemented through intermediate table user_images, which is joined with an image model.