hmm...model names are CamelCased, right ? so Imagelink will be better :) -- Lep pozdrav, Tilen Majerle http://majerle.eu
2012/2/6 Dave D <[email protected]> > Hi everybody, I'm working on creating an image upload section for my > site, and creating the images seems to work fine. The uploaded image > information is saved correctly, the image is moved to the correct > folder and it looks like I can call the image from other parts of the > site just fine. > > My problem comes up when I'm trying to edit the image. When I upload > a new file, it appears that it only takes the first letter as the name > for the file. For example, if I create an image on my site for the > google logo called "google.png", it will upload fine, but if > afterwards I try to upload a different file named "google.png" it will > call it just "g". or if I try to upload a file called "backup.png" it > will take the name as just "b". > > It's not too big a problem since I can just delete the image and > create a new record for one, but it would be nice to be able to edit > the image and keep the rest of the record intact since I record some > other information along with what the image name is. > > Here's the code from the add.ctp and edit.ctp files: > > add --- > <?php > echo $this->Form->create('imagelink', array('type'=>'file')); > echo $this->Form->input('name'); > echo $this->Form->input('type'); > echo "Link"; echo $this->Form->text('link'); > echo $this->Form->input('place'); > > echo "Info"; echo $this->Form->file('info'); > > echo $this->Form->end('Save Element'); > ?> > edit --- > <?php > echo $this->Form->create('imagelink',array('action'=>'edit')); > echo $this->Form->input('name'); > echo $this->Form->input('type'); > echo "Link"; echo $this->Form->text('link'); > echo $this->Form->input('place'); > > echo "Info"; echo $this->Form->file('info'); > > echo $this->Form->input('id',array('type'=>'hidden')); > echo $this->Form->end('Save Modifications'); > ?> > > The controller has... > > public function add(){ > if ($this->request->is('post')){ > if ($this->imagelink->save($this->request->data)){ > $this->Session->setFlash('New element has > been saved.'); > $this->redirect(array('action'=>'index')); > } else { > $this->Session ->setFlash('Unable to add > new element.'); > } > } > } > > public function edit($id = null){ > $this->imagelink->id = $id; > if ($this->request->is('get')) { > $this->request->data = $this->imagelink->read(); > } else { > if ($this->imagelink->save($this->request->data)) { > $this->Session->setFlash('Element has been > updated.'); > $this->redirect(array('action' => 'index')); > } else { > $this->Session->setFlash('Unable to update > the > element.'); > } > } > } > > .. and the model has the beforeSave method: > > move_uploaded_file($this->data['imagelink']['info']['tmp_name'],'img/'. > $this->data['imagelink']['info']['name']); > $this->data['imagelink']['info'] = > $this->data['imagelink']['info'] > ['name']; > return true; > > The database is only saving the image name instead of taking the whole > image as a blob, so before saving I wanted the image itself to be > moved to the img folder, and the name of the image to be stored in the > database. > > If anybody can see anything that would cause cake to only take the > first letter of the new uploaded image when editing the record, or if > you suspect something, please let me know. > > -- > Our newest site for the community: CakePHP Video Tutorials > http://tv.cakephp.org > Check out the new CakePHP Questions site http://ask.cakephp.org and help > others with their CakePHP related questions. > > > To unsubscribe from this group, send email to > [email protected] For more options, visit this group > at http://groups.google.com/group/cake-php > -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php
