Upload obrázku

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

Ahoj, jsem tu nový a marně zápasím s formulářem, který by uploadnul obrázek na server. Hodil by se mi nějaký příklad (v API jsem sice našel třídu FileUpload, ale nejsem z toho moc chytrej…). Byl by někdo tak hodnej a něco mi sem poslal?

Předem díky

Etch
Člen | 403
+
0
-

V úplném základu to de udělat např takto:

Presenter :

class TestPresenter extends Presenter{
	public function createComponentUploadFile(){
		$form = new AppForm()
		$form->addFile('file', 'Soubor');
		$form->addSubmit('send', 'Upload');
		$form->onSubmit[] = array($this, 'sendUpload');
		return $form;
	}

	public function sendUpload($sender){
		$d = $sender->getValues()
		$d['file']->move( ... );
		$this->redirect('this');
		exit();
	}
}

Šablona :

{control uploadFile}

Editoval Etch (14. 8. 2009 19:42)

PetrP
Člen | 587
+
0
-

po $this->redirect() není potřeba volat exit;

Etch
Člen | 403
+
0
-

PetrP napsal(a):

po $this->redirect() není potřeba volat exit;

Vím, ale je to síla zvyku.

talpa
Člen | 44
+
0
-

nahodou dost dobrej zvyk, spis na pochvalu nez na upozornovani :-)

Honza Marek
Člen | 1664
+
0
-

Vzhledem k tomu, že metoda redirect vyhazuje výjimku, tak se na ten exit fakt nikdy nedostane. Čili na tom není co chválit :-P

DocX
Člen | 154
+
0
-

Honza M. napsal(a):

… Čili na tom není co chválit :-P

No když si teď zvikneš, že v Nette na to nemusíš myslet, tak se stane, až jednou budeš muset něco upravit v ne-Nette-powered webu, že na to zapomeneš a bude problém ;)

redhead
Člen | 1313
+
0
-

Ještě upozorním na

$d['file']->isOk();

metodu, která zkontroluje, zda byl soubor správně uploadován.