Avatar
macaa.toth
Člen
Avatar
macaa.toth:

Zdravím, mám v nette 2.1 formulář s uploadformem a při zpracování mi to hází chybu:

Possible problem: you are sending a HTTP header while already having some data in output buffer. Try OutputDebugger or start session earlier.

. Nevím co s tím. Záhadné je, že kód před dvěma dny fungoval a nic jsem v něm neměnil. díky

 
Odpovědět 20.4.2014 13:45
Avatar
GreenMan
Redaktor
Avatar
GreenMan:

Toto mi vyhadzuje väčšinou, keď pred presmerovaním použijem echo, dump alebo niečo iné, čo niekde vypíše nejaký text.

Nahoru Odpovědět 20.4.2014 14:03
Zelená zostane zelenou, aj keď na ňu vyleješ modrú. - Satik64
Avatar
macaa.toth
Člen
Avatar
Odpovídá na GreenMan
macaa.toth:

měl jsem tam akorát flashmessage, a po smazání to též nefunguje

 
Nahoru Odpovědět 20.4.2014 14:21
Avatar
Juraj Mlich
Redaktor
Avatar
Odpovídá na macaa.toth
Juraj Mlich:

Skús poslať zdrojový kód daného formuláru.

Nahoru Odpovědět 20.4.2014 14:30
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
GreenMan
Redaktor
Avatar
Odpovídá na macaa.toth
GreenMan:

Skús si schovať laděnku a uvidíš, aké dáta sa ti tam vypisujú. Potom ich skús pohľadať v kóde. Chyba je možno na úplne inom mieste, ako je kód formulára.

Nahoru Odpovědět 20.4.2014 14:30
Zelená zostane zelenou, aj keď na ňu vyleješ modrú. - Satik64
Avatar
macaa.toth
Člen
Avatar
Odpovídá na Juraj Mlich
macaa.toth:
protected function createComponentProfilePhotoForm() {
   $form = new \Nette\Application\UI\Form();

       $form->addUpload('files', 'Profilová fotka:', TRUE)
           ->addRule(\Nette\Forms\Form::IMAGE, "Toto není fotka");
       $form->addSubmit('send', 'Nahrát profilovou fotku.');
   $form->onSuccess[] = $this->profilePhotoFormSucceeded;
   return $form;
 }
 public function profilePhotoFormSucceeded($form) {
   $values = $form->getValues();
   $files = $values['files'];
   foreach ($files as $imageFile) {
          if($imageFile->isImage()) {
               try {
                   $image = \Nette\Image::fromFile($imageFile);
                   $imageFile->move($this->context->parameters['wwwDir'].'/images/galleries/images/'.$imageFile->name);
                   $thumb = \Nette\Image::fromFile($this->context->parameters['wwwDir'].'/images/'.$imageFile->name);
                   $thumb->resize(NULL, 200);
                   $thumb->save($this->context->parameters['wwwDir'].'/images/thumbs/'.$imageFile->name);

               }
               catch(Exception $ex) {
                 $this->flashMessage('Nepodařilo se přidat fotky.', 'error');
               }
          }
       }
       $this->redirect('Profil:default');
   }
 }
 
Nahoru Odpovědět 20.4.2014 14:43
Avatar
Juraj Mlich
Redaktor
Avatar
Odpovídá na macaa.toth
Juraj Mlich:

Namiesto:

$this->flashMessage('Nepodařilo se přidat fotky.', 'error');

použi:

$form->addError('Nepodařilo se přidat fotky.');

. Doporučujem prečítať dokumentáciu - http://doc.nette.org/cs/2.1/forms

Nahoru Odpovědět 20.4.2014 14:47
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
macaa.toth
Člen
Avatar
Odpovídá na macaa.toth
macaa.toth:

je tam chyba u 'move' správně je to takhle:

$imageFile->move($this->context->parameters['wwwDir'].'/images/'.$imageFile->name);
 
Nahoru Odpovědět 20.4.2014 14:48
Avatar
macaa.toth
Člen
Avatar
Odpovídá na GreenMan
macaa.toth:

po vypnutí laděnky to hází toto:

Warning: POST Content-Length of 11246045 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
 
Nahoru Odpovědět 20.4.2014 14:55
Avatar
Juraj Mlich
Redaktor
Avatar
Odpovídá na macaa.toth
Juraj Mlich:

Toto je problém webového serveru, ktorý neumožňuje uploadnúť viac ako 8MB dát. Pokiaľ máš prístup k php.ini, tak nájdi a uprav tieto dva riadky na dané hodnoty:

upload_max_filesize = 1000M;
post_max_size = 1000M;
Nahoru Odpovědět 20.4.2014 15:02
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
GreenMan
Redaktor
Avatar
Odpovídá na macaa.toth
GreenMan:

Musíš niekde ošetriť maximálnu veľkosť fotky, ktorú môžeš nahrať. Toto ti vypisuje, pretože je väčšia ako sever povoľuje, potom vzniká ten problém s hlavičkou.

Nahoru Odpovědět 20.4.2014 15:04
Zelená zostane zelenou, aj keď na ňu vyleješ modrú. - Satik64
Avatar
macaa.toth
Člen
Avatar
Odpovídá na Juraj Mlich
macaa.toth:

supr funguje, díky :)
btw co ty středníky? já je v tom souboru php.ini nemám, takže jestli z toho vyplývá že jsou nepovinné nebo tak něco?

 
Nahoru Odpovědět 20.4.2014 15:07
Avatar
GreenMan
Redaktor
Avatar
Odpovídá na Juraj Mlich
GreenMan:

To sa mi nezdá ako najmúdrejšie riešenie, takto mu tam môže niekto v pohode nahrať giga dát.

Nahoru Odpovědět 20.4.2014 15:12
Zelená zostane zelenou, aj keď na ňu vyleješ modrú. - Satik64
Avatar
Juraj Mlich
Redaktor
Avatar
Odpovídá na macaa.toth
Juraj Mlich:

Je tam len "pre efekt". V podstate len zakomentuje zvyšok riadku.

Nahoru Odpovědět 20.4.2014 15:19
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Juraj Mlich
Redaktor
Avatar
Odpovídá na GreenMan
Juraj Mlich:

Záleží na použití. Pri fotografiách to samozrejme nie je najlepšie riešenie, najlepšie je to ešte obmedziť priamo vo formulári:

$form->addUpload('image', 'Obrázok:')
        ->addRule(Form::MAX_FILE_SIZE, 'Maximákna veľkosť súboru je 64 kB.', 64 * 1024);
Nahoru Odpovědět  +1 20.4.2014 15:21
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
macaa.toth
Člen
Avatar
macaa.toth:

ještě jednou díky moc

 
Nahoru Odpovědět 20.4.2014 15:33
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 16 zpráv z 16.