turk porno porno escort rokettube
Ergebnis 1 bis 7 von 7

Thema: Image Upload: Count Validator greift nicht ein

  1. #1
    Erfahrener Benutzer
    Registriert seit
    14.12.2009
    Beiträge
    440
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard Image Upload: Count Validator greift nicht ein

    Hi zusammen.

    Habe folgendes Problem:

    Zuerstmal der formular code, mit dem ich einzlen Bilder in einen Ordner am Server laden möchte:
    PHP-Code:
    $image1 = new Zend_Form_Element_File('image1');        
    $image1->setLabel('Bildauswahl ');
    $image1->addValidator('Extension'false, array('jpg','png','gif''jpeg'));



    // Mindestens 1 und maximal 1 Dateien sicherstellen
    //---> Greift nicht ein! ? ?
    $image1->addValidator('Count'true, array('min' => 1'max' => 1)); 
    jetzt wenn ich das Formular submitte und zuvor kein Bild ausgewählt habe greift der Count validator nicht ein. Es kommt stattdessen die Meldung
    Code:
    Image file not found:  C:\xampp\htdocs\xxx\public/images/site/kunden/36/20/4.
    wobei hier die 4 am ende ein von mir ermittelter wert des bildes ist. Spielt aber jetzt hier keine Rolle...

    es wird jedoch im controller folgendes übersprungen:
    PHP-Code:
     if ($form->isValid($formData)) 
                   {
    //.... 
    Wieso greift also hier der Count Validator nicht? Bzw wie überprüfe ich richtig ob ein Image (bzw eine Datei) überhaupt ausgewählt wurde

  2. #2
    Moderator Avatar von thomas
    Registriert seit
    16.12.2006
    Beiträge
    1.350
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Zuwenig Code um was feststellen zu können...
    Mfg
    Thomas Weidner
    I18N Team Leader, Zend Framework
    Wir schwarzen Schafe sind die heimlichen Herrscher der Welt... unser schwarzer Humor ist unsere beste Waffe
    www.thomasweidner.com

  3. #3
    Erfahrener Benutzer
    Registriert seit
    14.12.2009
    Beiträge
    440
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Dann muss irgendwo hier der fehler sein

    (Code Auschnitt)

    PHP-Code:
    if($anzeige->isUsersAnzeige($userID$ad_id))
          {
                       
                           
                
    //Upload Form
                
    $form = new Form_Upload();
                
    $form ->addElement('hash''no_reload', array('salt' => 'unique'));
                
    $form->setMethod('post')
                     ->
    setAction('');
                
                
    $this->view->form=$form;
                 
                
                
                
    //Wert der Datei mit dem HÖCHSTEN WERT ERMITTELN. NÄCHSTE DATEI dei geuppt wird IST >+1
                
    $allImages $image->getAllImagesofFolder($ad_path);
                
                
                
    $this->view->free $image->getAllowedAmountofImages() - $image->countImages($ad_path);
                    
                
                    
                
                 
    /******************************
                  * Empfangen
                  * 
                  * */
                
                
               
    if ($this->getRequest()->isPost()) 
               {
                            
                   
    $formData $this->getRequest()->getPost();    

                   
    //Wenn VALIDE und eine File gesetzt
                   
    if ($form->isValid($formData)) 
                   {
                                              
                              
    //Wenn Bilder im Ordner Wert des nchsten Bildes ist größer um 1 als Wert des höchsten
                           
    if(!$image->array_empty($allImages))
                            {
                                 
    $maxFilemax($image->getOnlyImageName($allImages));
                                 
    $maxFile+=1;
                            }
                            
    //Falls Ordner leer ist der erste Wert des Bildes 1.jpg zb
                            
    else
                            {
                                
    $maxFile =1;
                            }
                      
                       
                       
                     
    $upload = new Zend_File_Transfer_Adapter_Http();  
                                         
                     
    //Erstelltes Verzeichnis als Destination festlegen      
                     
    $upload->setDestination(PUBLIC_PATH."/images/site/kunden/".$userID."/".$ad_id."/");     
                
                
                     
    //Filename für Ausgabe nach uploaded abfragen 
                     
    $fileName $upload->getFileName(nullfalse);
                    
                    
                     
    //Alle Dateien des Formulars Uppen      ( bislang nur 1 feld) 
                  
                     
    foreach($upload->getFileInfo() as $info){
                         
                         
    //RENAMEN jedoch erst file Extension ermitteln
                         
                         
    $ext $image->getFileExtension($info['name']);
                         
    //Neuer Wert is gemäß oben $maxFile (wurde um 1 bereits erhöht oder ist beim ersten bild 1)
                         
    $fileName_new $maxFile.".".$ext;
                     
                         
                         
    //Renamen
                         
    $upload->addFilter('Rename',
                        array(
    'target' => PUBLIC_PATH."/images/site/kunden/".$userID."/".$ad_id."/".$fileName_new,                    
                        
    'overwrite' => true));
                        
                        
                         
    //Hier mit receive empfangen
                              
    if (!$upload->receive($info['name'])) {                       
                                  
    $messages $upload->getMessages();                       
                                  echo 
    implode("\n"$messages);                       
                              }     
                              

                    
                    
    //Thumbnail erstellen: QuellPath/Thumbpath, sowie abspeichern im thumbs Ordner
                    
    $image->makeThumb($ad_path.$fileName_new$thumbs_path.$fileName_new100130);
                    
                        
                     }     
                          
                              
                     
    /***********************************************************************************/         
                  
                      
    if($upload->isUploaded())
                      {               
                           
                          
    $this->view->ok_top_id         "ok_top";
                          
    $this->view->ok_top_message    "Datei <b>" .$fileName"</b> erfolgreich hochgeladen.";   
                          
                           
                      }      
                  
                  
                 
                  
                  
                  
                   }
                   
                   
    /*************************************************
                    * Verhindert CSRF ATTACKEN und doppeltes Absenden
                    * 
                    * */
                    
    else if(count($form->getErrors('no_reload')) > 0){                                
                     
    $this->_forward('nodoublesending''error''kunde');
                     return;                    
                     }
                     
                   
                   else
                   {
                     
    $this->view->error_top_id "error_top";        
                     
    $this->view->error_top_message "Beim Ausfüllen des Formulars sind Fehler aufgetreten. Korrigieren Sie bitte Ihre Eingaben.";
                   }
               
               } 

  4. #4
    Moderator Avatar von thomas
    Registriert seit
    17.12.2006
    Beiträge
    1.350
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Was mir so beim kurzen drüberschauen auffällt:

    1.) Was ist $image?
    2.) Wo kommt die Datei her?
    3.) Im Formular ist kein File Element?
    4.) Dein Aufruf von recieve() ist falsch
    5.) Dein Aufruf von getFileName() ist falsch
    6.) Dein Aufruf von addFilter() ist falsch
    Mfg
    Thomas Weidner
    I18N Team Leader, Zend Framework
    Wir schwarzen Schafe sind die heimlichen Herrscher der Welt... unser schwarzer Humor ist unsere beste Waffe
    www.thomasweidner.com

  5. #5
    Erfahrener Benutzer
    Registriert seit
    08.12.2009
    Beiträge
    161
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Hi thomas, danke erst mal, dass du mir weiterhin helfen möchtest.

    ok, also:
    1.) Was ist $image?
    PHP-Code:
    $image= new Model_Images(); 
    hierbei handelt es sich um eine Model Klasse, die generell den Umgang mit Bildern regelt.
    Falls du Codeauszüge brauchst gib bescheid. denke jedoch an dieser klasse liegts nicht...


    2.) Wo kommt die Datei her?
    Hoffe ich verstehe dich richtig. Die Datei kommt von meiner Uploadform
    PHP-Code:
    $form = new Form_Upload();
                
    $form ->addElement('hash''no_reload', array('salt' => 'unique'));
                
    $form->setMethod('post')
                     ->
    setAction('');
                
                
    $this->view->form=$form
    Diese kannst du in Post #1 von mir sehen.

    3.) Im Formular ist kein File Element?
    Echt? Ich hab schon eins...
    auch in Post#1 mit
    PHP-Code:
    $image = new Zend_Form_Element_File('image1'); 

    4.) Dein Aufruf von recieve() ist falsch
    5.) Dein Aufruf von getFileName() ist falsch
    6.) Dein Aufruf von addFilter() ist falsch
    Was ist daran jeweils falsch? hab mir nochmal die Doku angekuckt aber seh irgendwie den Fehler nicht...


    Vielen Dank schon mal

    VG

  6. #6
    Moderator Avatar von thomas
    Registriert seit
    17.12.2006
    Beiträge
    1.350
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Da stimmt was nicht...

    Im Post1 wird $image1 erstellt...
    In deiner Antwort sagst Du das $image das File Element ist, aber Du sagst auch das es gleichzeitig das Image-Model ist...

    Sorry, aber da kann irgendwas nicht stimmen.

    zu 4... receive auf dem umbenannten File aufzurufen halte ich nicht für eine gute Idee... ich würde das originale File nehmen

    zu 5... Du rufst getFileName() auf alle Files gemeinsam auf... das ergibt ein Array und keinen String... davon abgesehen machst du nichts mit diesem Wert

    zu 6... keine source Angabe

    Neu... $info['name'] KANN leer sein... du behandelst dieses Problem gar nicht
    Mfg
    Thomas Weidner
    I18N Team Leader, Zend Framework
    Wir schwarzen Schafe sind die heimlichen Herrscher der Welt... unser schwarzer Humor ist unsere beste Waffe
    www.thomasweidner.com

  7. #7
    Erfahrener Benutzer
    Registriert seit
    08.12.2009
    Beiträge
    161
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    $upload->receive($info['name'])
    Das wird auch wahrscheinlich mein Problem sein denke ich, Aber normal düfte ich doch gar nicht durch die isValid($formdata) Prüfung des Formulars kommen...


    Im Post1 wird $image1 erstellt...
    In deiner Antwort sagst Du das $image das File Element ist, aber Du sagst auch das es gleichzeitig das Image-Model ist...
    Ne da hab ich mich blöd ausgedrückt.... ich erstelle in der Klasse Form_Upload() mit $image1 das file element, füge es dann der Form hinzu.

    Im Controller instanziere ich dann die Klasse mit $image.


    zu 4... receive auf dem umbenannten File aufzurufen halte ich nicht für eine gute Idee... ich würde das originale File nehmen

    zu 5... Du rufst getFileName() auf alle Files gemeinsam auf... das ergibt ein Array und keinen String... davon abgesehen machst du nichts mit diesem Wert

    zu 6... keine source Angabe
    Ok. Das werd ich mir zu herzen nehmen

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 08.03.2010, 23:30
  2. Antworten: 6
    Letzter Beitrag: 01.03.2010, 20:01
  3. [Zend_Translate] Fallback greift nicht, wenn kein Locale da ist
    Von strolch00 im Forum Lokalisierung & Internationalisierung
    Antworten: 4
    Letzter Beitrag: 18.12.2008, 17:32
  4. Assert greift nicht
    Von Akido im Forum Auth
    Antworten: 3
    Letzter Beitrag: 28.08.2008, 12:27
  5. Design: Image-Upload
    Von stun im Forum Konzepte & Ideen
    Antworten: 6
    Letzter Beitrag: 25.07.2008, 16:00

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •