[ZEND] Avatar upload form werkt niet

Overzicht Reageren

Direct weten hoe jij ervoor staat in de arbeidsmarkt?
- 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

19/06/2013 11:51:19
 
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.
 
Chi Lion

Chi Lion

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!
 
Chi Lion

Chi Lion

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
        ));
    }
    
}

?>
 
Chi Lion

Chi Lion

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 :)
 
Chi Lion

Chi Lion

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



Overzicht Reageren