IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
macaa.toth
Člen
Avatar
macaa.toth:20.4.2014 13:45

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
Tvůrce
Avatar
GreenMan:20.4.2014 14:03

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:20.4.2014 14:21

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
Tvůrce
Avatar
Odpovídá na macaa.toth
Juraj Mlich:20.4.2014 14:30

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

 
Nahoru Odpovědět
20.4.2014 14:30
Avatar
GreenMan
Tvůrce
Avatar
Odpovídá na macaa.toth
GreenMan:20.4.2014 14:30

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:20.4.2014 14:43
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
Tvůrce
Avatar
Odpovídá na macaa.toth
Juraj Mlich:20.4.2014 14:47

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
Avatar
macaa.toth
Člen
Avatar
Odpovídá na macaa.toth
macaa.toth:20.4.2014 14:48

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:20.4.2014 14:55

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
Tvůrce
Avatar
Odpovídá na macaa.toth
Juraj Mlich:20.4.2014 15:02

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
Avatar
GreenMan
Tvůrce
Avatar
Odpovídá na macaa.toth
GreenMan:20.4.2014 15:04

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:20.4.2014 15:07

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
Tvůrce
Avatar
Odpovídá na Juraj Mlich
GreenMan:20.4.2014 15:12

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
Tvůrce
Avatar
Odpovídá na macaa.toth
Juraj Mlich:20.4.2014 15:19

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

 
Nahoru Odpovědět
20.4.2014 15:19
Avatar
Juraj Mlich
Tvůrce
Avatar
Odpovídá na GreenMan
Juraj Mlich:20.4.2014 15:21

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
20.4.2014 15:21
Avatar
macaa.toth
Člen
Avatar
macaa.toth:20.4.2014 15:33

ještě jednou díky moc

 
Nahoru Odpovědět
20.4.2014 15:33
Avatar
Odpovídá na GreenMan
Tomáš Haubert:26.4.2017 7:26

Díky, tohle vyřešilo teď můj problém s loginem přes FB na nette 2.1

Nahoru Odpovědět
26.4.2017 7:26
Jsem malopodnikatel, buším do kompu jak datel
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 17 zpráv z 17.