Ok.. think I caught a break. Thanks to schnauss' reminder to check the
image content, I did a little more digging and found a reminder to include
the following in the Form->create:
- 'enctype' => 'multipart/form-data'
So resulting form->create looks like:
echo $this->Form->create('ModelName', array('enctype' =>
'multipart/form-data'));
Made the update, and images are being uploaded with content (and there
might have been a face-palm at some point after this update)!
On Monday, 7 April 2014 11:50:54 UTC+10, seba wrote:
>
> Hi schnauss,
>
> Just checked, and that is exactly what I am getting - the resulting image
> file uploaded to the server consists only of the HTTP PUT request.
>
> On Sunday, 6 April 2014 06:51:29 UTC+10, schnauss wrote:
>>
>> What are the contents of the file that gets uploaded?
>>
>> I've been having a similar problem. I upload an image, but the resulting
>> file is 900b and consists only of my HTTP PUT request.
>>
>> On Friday, April 4, 2014 12:10:51 AM UTC-4, seba wrote:
>>>
>>> I'm using the Miles Johnson Uploader to upload and resize images. I'm
>>> finding that images are being uploaded to the correct location and the
>>> respective database table column is being updated with the correct path and
>>> file name, however, the images that are being saved to the server directory
>>> are effectively empty and corrupt (i.e. I upload a 500KB image, that ends
>>> up being 6KB in size once uploaded, and when I go to open it, I get the
>>> file is corrupt message).
>>> Note: I've removed the resize config temporarily whilst I have this
>>> corrupt image issue, hence there's no config below for it.
>>>
>>> I've provided the relevant code snippets below, but any advice to help
>>> resolve this issue around why my app's uploading empty/corrupt images is
>>> much appreciated.
>>>
>>> *Here is the upload code in my model file:*
>>>
>>> At the top of the model file:
>>>
>>> App::uses('AppModel', 'Model','AttachmentBehavior');
>>>
>>> And the configuration further down the model file:
>>> public $actsAs = array(
>>> 'Uploader.Attachment' => array(
>>> 'image' => array(
>>> 'prepend' => 'logo-',
>>> 'tempDir' => TMP,
>>> 'uploadDir' => '/full-path-to/app/webroot/img/uploads/',
>>> 'finalPath' => '/img/uploads/',
>>> 'dbColumn' => 'image',
>>> 'overwrite' => true,
>>> 'stopSave' => true,
>>> 'allowEmpty' => true
>>> )
>>> ),
>>> 'Uploader.FileValidation' => array(
>>> 'image' => array(
>>> 'extension' => array('gif', 'jpg', 'png', 'jpeg'),
>>> 'type' => array('image'),
>>> 'filesize' => 5242880
>>> )
>>> )
>>> );
>>>
>>> *Here is the code for the image input field only (fyi - the image field
>>> is one of many in the form) in the view. I'm using Bootstrap, hence the
>>> additional formatting:*
>>>
>>> echo $this->Form->input('image', array(
>>> 'fieldset' => false,
>>> 'label' => false,
>>> 'before' => '<label class="col-sm-2 control-label">Image</label><div
>>> class="col-sm-9">',
>>> 'after' => '</div>',
>>> 'class' => 'form-control',
>>> 'type' => 'file',
>>> 'div' => 'form-group',
>>> 'error' => array(
>>> 'attributes' => array(
>>> 'wrap' => 'div', 'class' => 'alert alert-danger'
>>> )
>>> )
>>> )
>>> );
>>>
>>>
>>> *Finally, here is the controller code:*
>>>
>>> public function edit($id = null) {
>>> if (!$this->ModelName->exists($id)) {
>>> throw new NotFoundException(__('Invalid ModelName'));
>>> }
>>> if ($this->request->is(array('post', 'put'))) {
>>> if ($this->ModelName->save($this->request->data)) {
>>> $this->Session->setFlash(__('The ModelName has been saved.'), 'default',
>>> array('class' => 'alert alert-success'));
>>> return $this->redirect(array('action' => 'index'));
>>> } else {
>>> $this->Session->setFlash(__('The ModelName could not be saved. Please,
>>> try again.'), 'default', array('class' => 'alert alert-danger'));
>>> }
>>> } else {
>>> $options = array('conditions' => array('ModelName.' .
>>> $this->ModelName->primaryKey => $id));
>>> $this->request->data = $this->ModelName->find('first', $options);
>>> }
>>> }
>>>
>>> Thanks!
>>>
>>
--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
---
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.