Upload souboru (obrázku) na localhostu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Jarek92
Člen | 91
+
0
-

Už nějaký čas se trápím s uploadem souboru na localhostu. Už jsem zkusil jen tu nejzákladnější operaci a ani ta mi nejede, po odeslání formuláře se mi objeví stejná stránka s parametrem „do=addFoto-submit“.

protected function createComponentAddFoto()
   {
   $form = new Nette\Application\UI\Form;

   $form->addText('popis', 'Popis')
        ->setRequired('Zadejte prosím název fotky, který se objeví pod fotkou v detailním zobrazení.');
   $form->addUpload('fotka', 'Fotka')
        ->addRule(Nette\Forms\Form::IMAGE, 'Fotka musí být ve formátu JPEG, PNG nebo GIF.')
        ->setRequired('Vyberte prosím fotku.');
   $form->addSelect('sekce_id', 'Sekce')
        ->setRequired()
        ->setItems($this->fotogalerie->nactiSekce());

   $form->addSubmit('send', 'Přidat');
   $form->onSuccess[] = $this->addFotoFormSucceeded;
   return $form;
   }

   public function addFotoFormSucceeded($form)
   {
   $values = $form->getValues();
   $cesta = "localhost/solan/www/images/".$values->fotka->getName();

   $values->fotka->move($cesta);

   $this->redirect('Fotogalerie:default');
   }

Moc bych byl rád, kdyby mi někdo ten problém osvětlil. Díky.

Tomáš Votruba
Moderator | 1114
+
0
-

Zkus pod $form->onSuccess[] = $this->addFotoFormSucceeded; přidat:

$form->onError[] = $this->addFotoFormSucceeded;

Je možné, že neprojde kontrola souboru.

Editoval Tomáš Votruba (1. 3. 2014 11:31)

Pavel Macháň
Člen | 282
+
0
-

Jarek92 napsal(a):

Už nějaký čas se trápím s uploadem souboru na localhostu. Už jsem zkusil jen tu nejzákladnější operaci a ani ta mi nejede, po odeslání formuláře se mi objeví stejná stránka s parametrem „do=addFoto-submit“.

protected function createComponentAddFoto()
   {
   $form = new Nette\Application\UI\Form;

   $form->addText('popis', 'Popis')
        ->setRequired('Zadejte prosím název fotky, který se objeví pod fotkou v detailním zobrazení.');
   $form->addUpload('fotka', 'Fotka')
        ->addRule(Nette\Forms\Form::IMAGE, 'Fotka musí být ve formátu JPEG, PNG nebo GIF.')
        ->setRequired('Vyberte prosím fotku.');
   $form->addSelect('sekce_id', 'Sekce')
        ->setRequired()
        ->setItems($this->fotogalerie->nactiSekce());

   $form->addSubmit('send', 'Přidat');
   $form->onSuccess[] = $this->addFotoFormSucceeded;
   return $form;
   }

   public function addFotoFormSucceeded($form)
   {
   $values = $form->getValues();
   $cesta = "localhost/solan/www/images/".$values->fotka->getName();

   $values->fotka->move($cesta);

   $this->redirect('Fotogalerie:default');
   }

Moc bych byl rád, kdyby mi někdo ten problém osvětlil. Díky.

Smrdí mě tam ta cesta. Dostaň si tam wwwDir a až z této cesty pokračuj na images

Editoval EIFEL (1. 3. 2014 11:33)

Jarek92
Člen | 91
+
0
-

Děkuju, pak to hlásilo chybu u řádku: $values->fotka->move($cesta);

Warning → rename(,localhost/solan/www/images/20131005_102929.jpg): Invalid argument

To moc nechápu. Co je na absolutní cestě local… špatného?

Jarek92
Člen | 91
+
0
-

EIFEL napsal(a):

Jarek92 napsal(a):

Už nějaký čas se trápím s uploadem souboru na localhostu. Už jsem zkusil jen tu nejzákladnější operaci a ani ta mi nejede, po odeslání formuláře se mi objeví stejná stránka s parametrem „do=addFoto-submit“.

protected function createComponentAddFoto()
   {
   $form = new Nette\Application\UI\Form;

   $form->addText('popis', 'Popis')
        ->setRequired('Zadejte prosím název fotky, který se objeví pod fotkou v detailním zobrazení.');
   $form->addUpload('fotka', 'Fotka')
        ->addRule(Nette\Forms\Form::IMAGE, 'Fotka musí být ve formátu JPEG, PNG nebo GIF.')
        ->setRequired('Vyberte prosím fotku.');
   $form->addSelect('sekce_id', 'Sekce')
        ->setRequired()
        ->setItems($this->fotogalerie->nactiSekce());

   $form->addSubmit('send', 'Přidat');
   $form->onSuccess[] = $this->addFotoFormSucceeded;
   return $form;
   }

   public function addFotoFormSucceeded($form)
   {
   $values = $form->getValues();
   $cesta = "localhost/solan/www/images/".$values->fotka->getName();

   $values->fotka->move($cesta);

   $this->redirect('Fotogalerie:default');
   }

Moc bych byl rád, kdyby mi někdo ten problém osvětlil. Díky.

Smrdí mě tam ta cesta. Dostaň si tam wwwDir a až z této cesty pokračuj na images

teď přesně nevím co wwwDir znamená? něco jako {basepath}? a jak se volá?

Pavel Macháň
Člen | 282
+
0
-

Jarek92 napsal(a):

teď přesně nevím co wwwDir znamená? něco jako {basepath}? a jak se volá?

V configu je to přístupné jako %wwwDir%
Inspirovat se můžeš tu: https://forum.nette.org/…-pro-obrazky#…

Jarek92
Člen | 91
+
0
-

Děkuju, ale bohužel jsem to moc nepochopil. nedá se to volat nějak jinak?

Jarek92
Člen | 91
+
0
-

Tak jsem to zkusil dle toho návodu z vlákna co jsi poslal, a dostal sem se k následující hlášce:

Warning → rename(,C:\xampp\htdocs\solan\www/images/20131005_102849.jpg): Invalid argument

Nevíte, co s tím? Proč je tam ta čárka na začátku?
Děkuju.

Jarek92
Člen | 91
+
0
-

Tak nakonec vyřešeno, první dva pokusy chyba a na potřetí to šlo. Tak snad.

Děkuju moc.