I think that you should invoke the save() method of sfValidatedFile
class in your action to move the document from the temporary folder,
ie:

$oFile = $oForm->getValue('hospital' . $oHospital-
>getId()));
$oFile->save(sfConfig::get('sf_upload_dir').'/myfilename.pdf');

more on the documentation (listing 2-20):
http://www.symfony-project.org/forms/1_2/en/02-Form-Validation#chapter_02_file-upload


On 17 Apr, 15:13, HAUSa <[email protected]>
wrote:
> Hi all,
>
> I made a non-Propel form, with several file inputs in it. But, now it
> doesn't save the files!
>
> This is my form.class.php:
>
>         public function configure(){
>
>                 $aHospitals = HospitalPeer::selectList();
>
>                 foreach($aHospitals as $oHospital){
>                         $this->widgetSchema['hospital' . $oHospital->getId()] 
> = new
> sfWidgetFormInputFile();
>                         $this->widgetSchema->setLabel('hospital' . 
> $oHospital->getId(),
> $oHospital->getName());
>
>                         $this->validatorSchema['hospital' . 
> $oHospital->getId()] = new
> sfValidatorFile(
>                                 array(
>                                         'path'       => 
> sfConfig::get('sf_upload_dir') . '/schedules',
>                                         'mime_types' => 
> array('application/pdf')
>                                 ),
>                                 array(
>                                         'required'   => 'Er is geen planning 
> geselecteerd.',
>                                         'mime_types' => 'De planning heeft 
> een verkeerde bestandsextensie
> (enkel PDF).',
>                                         'max_size'   => 'De planning is te 
> groot (maximaal %max_size%
> bytes).'
>                                 )
>                         );
>
>                 }
>
>         }
>
> As you can see, I create a file input widget for each object
> (hospital). I also create a validator which has to store the file.
>
> This is my actions.class.php:
>
>                 $oForm = new myScheduleForm();
>                 if($oRequest->isMethod('post')){
>
>                         
> $oForm->bind($oRequest->getParameter($oForm->getName()), 
> $oRequest->getFiles($oForm->getName()));
>
>                         if($oForm->isValid()){
>
>                                 foreach($aHospitals as $oHospital){
>                                         $oSchedule = new Schedule();
>                                         
> $oSchedule->setHospitalId($oHospital->getId());
>                                         
> $oSchedule->setSchedule($oForm->getValue('hospital' . $oHospital->getId()));
>
>                                         $oSchedule->save();
>                                 }
>
>                                 $this->redirect('@dashboard');
>
>                         }
>
>                 }
>
> Here I create a new object (database record) for each hospital.
>
> Does anyone know why the files are not being uploaded?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to