better create some gists at gist.gthub.com and send some links to them as this source is unreadableā¦
please include all (relevant) source. Specifically the source of the MusicUploadForm class On 17 aug. 2013, at 11:50, Sandeep Singh <[email protected]> wrote: > Hi, > > I am working on a project using zend framework and i am stuck with a > problem. I have to upload three files via a single form. The files must be > mp3. Only one of them is compulsary . I was able to do study about it but > still few bugs in my code. > > > If i upload three files with same name then only one is uploaded as the > portion where i recieve the files is working using name of file and i think > recieveing all the files as the name is same for them. > > Also i am not able to make the first upload file compulsary . > > > Below is th code i have wrriten. > > > > =============== Controller ===================== > > > > $form = new MusicUploadForm(); > $form->get('submit')->setAttribute('value', 'Upload'); > $request = $this->getRequest(); > if ($request->isPost()) { > //preparing form and setting validatores > $musicupload = new Musics(); > $form->setInputFilter($musicupload->getInputFilter()); > //fetching the data files and non files > $nonFile = $request->getPost()->toArray(); > $Files = $request->getFiles()->toArray(); > //checking for form validation > $data = array_merge( > $nonFile, > $Files > ); > $form->setData($data); > if ($form->isValid()) { > > //setting the validators, adapters and filters > $adapter = new \Zend\File\Transfer\Adapter\Http(); > $validator = new \Zend\Validator\File\MimeType('audio/mpeg'); > $filter = new \Zend\Filter\File\Rename(array( > "target" => "public/songs/song.mp3", > "randomize" => true, > )); > //applying validators > foreach($Files as $key1 => $File){ > if((int)$File['error'] == 0){ > $adapter->setValidators(array($validator), $File['name']); > if (!$adapter->isValid($File['name'])){ > $dataError = $adapter->getMessages(); > $error = array(); > foreach($dataError as $key=>$row) > { > $error[] = $row; > } > $form->setMessages(array( $key1 => $error )); > } > } > > $adapter->clearValidators(); > } > > if(!isset($error)){ > $upload->setDestination('public/songs'); > // saving to db > foreach($Files as $key => $File){ > if ($adapter->receive($File['name'])) { > $newName = $filter->filter($adapter->getFileName($File['name'])); > $record = array(); > $record['org_name'] = $File['name']; > $record['temp_name'] = $newName; > $record['first_name'] = $data['first_name']; > $record['last_name'] = $data['last_name']; > $this->getMusicsTable()->addMusic($record); > } > } > $this->flashMessenger()->addSuccessMessage('Songs successfully uploaded.'); > return $this->redirect()->toRoute('listmusic'); > } > } > } > > > > > > > > ===========filter for input type file =================== > > > $inputFilter->add( > $factory->createInput(array( > 'name' => 'song_1', > 'required' => true, > )) > ); > > > > > I need this done very quickly. Any kind of help is much much appriciated. > > > > > > > Thanks -- List: [email protected] Info: http://framework.zend.com/archives Unsubscribe: [email protected]
