Apologies for the late reply - I solved this, it was a really silly error on my part!
I was accessing the array but not the specific field I needed. On Jun 21, 5:37 pm, brian <[email protected]> wrote: > What does the controller code look like now? Specifically, where it > interacts with your ImageComponent. > > > > On Sun, Jun 21, 2009 at 11:46 AM, number9<[email protected]> wrote: > > > OK, so I have solved theundefinedindex problem - the view file was > > wrong, it should have been "Tip.image" instead of just image. However, > > I changed it to "Img.pic" so as not to clash with image. > > > I'm now getting the following error when trying to "add": > > > Notice (8): Array to string conversion [APP\controllers\components > > \image.php, line 50] > > Warning (2): strrpos() expects parameter 1 to be string, array given > > [APP\controllers\components\image.php, line 145] > > > I've done some searching, and I understand that the error means an > > array is being given as opposed to a string, but I didn't really come > > across a fix? Has anybody got any ideas? > > > Thanks in advance! > > > On Jun 20, 6:19 pm, number9 <[email protected]> wrote: > >> I'm trying to add the ability to upload files on an existing add > >> method within a controller, but no matter which method I use to try > >> and upload files I get an "undefinedindex" error on the name of the > >> field within the view and I cannot understand why. > > >> I thought it may have been a problem with the components I was trying, > >> but after stripping back to a simple bit of code found here > >> (http://www.davidgolding.net/cakephp/using-the-file-functions-in-cakep...) > >> - I am still getting the error. > > >> Code looks like this: > > >> // Controller: > > >> if ($this->data['Tip']['image']) { > > >> $file = new > >> File($this->data['Tip']['image']); > >> $ext = $file->ext(); > > >> if ($ext != 'jpg' && $ext != 'jpeg' && > >> $ext != 'gif' && $ext != > >> 'png') { > >> $this->Session->setFlash('You may only > >> upload image files.'); > >> $this->render(); > >> } else { > >> $date = $this->data['Tip']['created']; > >> $filename = > >> $date['year'].'-'.$date['month'].'-'.$date['day'].'- > >> post-image.'.$ext; > > >> $data= $file->read(); > >> $file->close(); > > >> $file = new > >> File(WWW_ROOT.'/img/'.$filename,true); > >> $file->write($data); > >> $file->close(); > >> } > >> } > > >> // View file: > > >> <?php echo $form->create('Tip',array('type'=>'file')); ?> > >> <fieldset> > >> <legend><?php __('Add Tip');?></legend> > >> <?php > >> echo $form->input('comment_count'); > >> echo $form->input('name'); > >> echo $form->input('slug'); > >> echo $form->input('description'); > >> echo $form->input('image',array('type'=>'file')); > >> echo $form->input('expires'); > >> echo $form->input('rating'); > >> echo $form->select('Tip.category_id', $cat_list, null, > >> array(), > >> true); > >> echo $form->input('site_id'); > >> echo $form->input('user_id'); > >> echo $form->input('Tag.name',array( > >> 'type' => 'text', > >> 'label' => __('Add Tags',true), > >> 'after' => __('Seperate each tag with a > >> comma. Eg: family, sports, icecream',true) > >> )); > >> ?> > >> </fieldset> > >> <?php echo $form->end('Submit');?> > > >> There is more in the controller file, but I thought I would include > >> just the relevant information for the time being. Is it possible that > >> something else in there is conflicting with the code? I tried also > >> adding ['tmp_name'] but no joy... > > >> Any insight would be appreciated. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" 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/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
