I use the following code to upload images.
I madethe images file mandatory, so save() is invalidated if there is no 
images.
I choose to store them in a directory named after the object's id.
I dunno on what to extend the explanation, please tell.

You'll find the file in $this->data['MyObject']['image']['tmp_name']
Also make sure your form contains the attribute: 
enctype="multipart/form-data"

olivvv

    function edit($id = null)
    {
        $img = '';
        if (isset($this->data['Applicationimage']['image']['tmp_name'])) 
$img = $this->data['Applicationimage']['image']['tmp_name'];

        if (empty($this->data)){
            if ($id) $this->data = $this->Applicationimage->read(null, $id);
            
$this->set('applicationArray',$this->Applicationimage->Application->generateList());

        }else{

            if (!$id) if (($img == '') || 
(!$this->_isValidImage($img)))  
$this->Applicationimage->invalidate('Applicationimage/image');
            if ($id) if ($img != '') if (!$this->_isValidImage($img)) 
$this->Applicationimage->invalidate('Applicationimage/image');
           
            $this->cleanUpFields();
            if ($this->Applicationimage->save($this->data)){
                if ($img != ''){
                    if ($id) $this->_uploadfile($img, 
$this->imgpath.DS.'application'.DS.$id.'.jpg');
                    if (!$id) $this->_uploadfile($img, 
$this->imgpath.DS.'application'.DS.$this->Applicationimage->getLastInsertID().'.jpg');
    
   
                }
                $this->flash('Votre image d\'application a 
été modifiée.','/applicationimages');   
            }else{   
                
$this->set('applicationArray',$this->Applicationimage->Application->generateList());
                if ($id) if ($img != '') if 
(!$this->_isValidImage($img))    $this->set('imageerror', true);
                if (!$id) if ($img == '') $this->set('imageerror', true);
            }
        }
    }


################    functions in app_controller :    ##################

    function _selectedArray($data, $key='') {
        $array = array();
        if(!empty($data)) {
            if ($key != ''){
                foreach($data as $var) {
                    $array[$var[$key]] = $var[$key];
                }
            } else {
                foreach($data as $var) {
                    $array[$var] = $var;
                }
            }
        }
        return $array;
    }
   
    function _isValidImage($tmp_name){
        if (is_uploaded_file($tmp_name)) if 
(@getimagesize($tmp_name))    return true;
        else return false;
    }

    function _uploadFile($tmp_name, $filename){
        if (is_uploaded_file($tmp_name)){
            if(file_exists($filename)) unlink($filename);
            move_uploaded_file( $tmp_name ,  $filename);
            return true;
        }
        else return false;
    }

################## view file: ##########

<h1>Ajouter une image d'application:</h1>
<form action="<?php echo 
$html->url('/applicationimages/edit/'.$html->tagValue('Applicationimage/id')); 
?>" enctype="multipart/form-data" method="post">
<?php //echo $html->formTag('/applicationimages/add')
?>
<p>
    <?php echo $html->tagErrorMsg('Applicationimage/name', 'Entrez le 
nom.');  ?>   
    Nom: <?php echo $html->input('Applicationimage/name', 
array('size'=>'40'));  ?>
</p>
<p>
    <?php echo $html->tagErrorMsg('Applicationimage/image', 'Entrez 
l\'image.');  ?>
    <?php if(isset($imageerror)) echo '<div class="error">Choisissez une 
image.</div>'?>    
    Image: <?php echo $html->file('Applicationimage/image'); ?>
</p>

<?php if(!empty($this->data['Applicationimage']['id'])){ ?>
<img src="/phpThumb/phpThumb.php?src=/cakeimg/application/<?php echo 
$this->data['Applicationimage']['id'] ?>.jpg&amp;w=200" width="200"/>
<?php } ?>

<p>
  Application:
   <?php echo $html->tagErrorMsg('Applicationimage/application_id', 
'Choisissez une application.');  ?>   
   <?php echo $html->selectTag('Applicationimage/application_id', 
$applicationArray, null, null) ; ?>
</p>   
<p>
  <?php echo $html->hidden('Applicationimage/id')  ?>   
    <?php echo $html->submit('Save')  ?>
</p>
</form>



[EMAIL PROTECTED] wrote:
> Okay I am integrating a Multiple File upload Flash applet into CakePHP.
>  It is configurable to direct the uploaded files to a CakePHP url.
> Now, here is the line of code normally used by the script to get at the
> files uploaoded.
>
> move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadfile)
>
> Is there a pretty way to do this same thing in CakePHP?  I am pretty
> new to this POST upload of files so just looking to get some more
> information on the CakePHP way to do it since I couldn't really find
> much on this Group about it.
>
>
> >
>
>   


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/cake-php
-~----------~----~----~----~------~----~------~--~---

Reply via email to