[ZEND] Avatar upload form werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- Raoul -

- Raoul -

26/06/2012 17:26:15
Quote Anchor link
Hoi allemaal.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php

class Application_Form_AvatarUpload extends Zend_Form
{
    
    public function init()
    {

        //validators
        
        $notEmptyValidator = new Zend_Validate_NotEmpty();
        $notEmptyValidator->setMessage('Dit veld is verplicht.');
        
        $extensionValidator = new Zend_Validate_File_IsImage();
        $extensionValidator->setMessage('Je hebt geen geldig bestand opgegeven.');
        
        $imageSizeValidator = new Zend_Validate_File_ImageSize(array('minwidth' => 10, 'minheight' => 10, 'maxwidth' => 100, 'maxheight' => 100));
        $imageSizeValidator->setMessage('Je gekozen afbeelding mag slechts 100 bij 100 pixels groot zijn.');
        
        $uploadImage = new Zend_Form_Element_File('uploadImage');
        
        $uploadImage->setLabel('Afbeelding zoeken op je computer')
                    ->
setRequired(true)
                    ->
addValidators(array($notEmptyValidator, $extensionValidator, $imageSizeValidator));
        
        $submit = new Zend_Form_Element_Submit('Uploaden');
        
        $this->addElements(array(
            $uploadImage, $submit
        ));
    }
    
}

?>


De form werkt wel goed, maar ook al upload ik een .png of .gif bestand, ik krijg altijd de foutmelding: 'Je hebt geen geldig bestand opgegeven.'.

Iemand die mij kan helpen?

Alvast bedankt.
 
PHP hulp

PHP hulp

24/04/2024 12:47:53
 
Roy -

Roy -

26/06/2012 17:32:26
Quote Anchor link
Werk zelf niet met Zend maar daar zullen ze vast een bestandje hebben met mime types, daar zal png en gif missen.
Zoek eens in de code naar de Zend_Validate_File_IsImage functie, die zal ergens refereren naar mime types.
 
- Raoul -

- Raoul -

26/06/2012 17:38:22
Quote Anchor link
Bedankt voor je reactie Roy. In _IsImage() kon je ook nog een optionele variable meegeven met mimetypes, dat heb ik ook al geprobeerd, maar dan nog blijft het die foutmelding geven.
 
John Cena

John Cena

26/06/2012 19:21:17
Quote Anchor link
Je moet even in je form meegeven welke er toegestaan zijn :)
Klik
 
- Raoul -

- Raoul -

27/06/2012 00:48:48
Quote Anchor link
Chi Lion ik snap niet helemaal wat je bedoelt. Moet ik Zend_Form_Transfer() toevoegen aan ->addElements() ofzo?
 
Crispijn -

Crispijn -

27/06/2012 07:11:29
Quote Anchor link
Volgens mij bedoeld Chi dit;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$upload
->addValidator('ExcludeMimeType', false, array('image/gif',
                                                      'image/jpeg');
?>
 
De VeeWee

de VeeWee

27/06/2012 08:28:22
Quote Anchor link
Krijg jij wel een bestand binnen?
Volgens mij moet je op het form nog een enctype meegeven:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$this
->setAttrib('enctype', 'multipart/form-data');
?>


Als je toch zeker bent dat je een bestand krijgt, dan kan je tijdens het POST-en even kijken wat er in die Zend_Form_Element_File zit. De filename moet in ieder geval ingevoerd zijn!
 
John Cena

John Cena

27/06/2012 09:17:05
Quote Anchor link
Crispijn is right.

de VeeWee niet, als het goed is geeft Zend dat auto. mee.
 
- Raoul -

- Raoul -

27/06/2012 12:59:27
Quote Anchor link
Bedant voor jullie reacties. Als ik nu iets upload krijg ik nu altijd als error: 'The mimetype of file 'games-animated-gif-002.gif' could not be detected'.

Code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php

class Application_Form_AvatarUpload extends Zend_Form
{
    
    public function init()
    {

        //validators
        
        $notEmptyValidator = new Zend_Validate_NotEmpty();
        $notEmptyValidator->setMessage('Dit veld is verplicht.');
        
        $imageSizeValidator = new Zend_Validate_File_ImageSize(array('minwidth' => 10, 'minheight' => 10, 'maxwidth' => 100, 'maxheight' => 100));
        $imageSizeValidator->setMessage('Je gekozen afbeelding mag slechts 100 bij 100 pixels groot zijn.');
        
        $uploadImage = new Zend_Form_Element_File('uploadImage');
        
        $uploadImage->setLabel('Afbeelding zoeken op je computer')
                    ->
setRequired(true)
                    ->
addValidators(array($notEmptyValidator, $imageSizeValidator))
                    ->
addValidator('ExcludeMimeType', false, array('image/gif',
                                                      'image/jpeg'));
        
        $submit = new Zend_Form_Element_Submit('Uploaden');
        
        $this->setAttrib('enctype', 'multipart/form-data');
        
        $this->addElements(array(
            $uploadImage, $submit
        ));
    }
    
}

?>
 
John Cena

John Cena

27/06/2012 13:34:40
Quote Anchor link
En met een ander bestand gebeurt dat ook?

Stackoverflow has da answer
 

27/06/2012 15:00:24
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$uploadImage
= new Zend_Form_Element_File('image');
$uploadImage->setLabel('Afbeelding zoeken op je computer')
            ->
addValidator('Extension', true, 'jpeg, jpg, png')
            ->
addValidator('Size', true, 2048000)
            ->
setDestination('absoluut pad naar map' . '/tmp/')
            ->
setValueDisabled(true);

/**
 * In de controller:
 */

if ($form->image->receive()) {
    $image  = $form->getValue('image');
    // etc
}
?>
 
- Raoul -

- Raoul -

27/06/2012 15:53:44
Quote Anchor link
Thanks Chilion en Phoenix, het is nu opgelost.
 

27/06/2012 16:19:34
Quote Anchor link
graag gedaan :)
 
John Cena

John Cena

27/06/2012 16:25:39
Quote Anchor link
Copy that.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.