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.