Potřebuji do databáze uložit obrázek pomocí formuláře příkazem addUpload a nevím kde dělám chybu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- Karel Chramosil
 - Člen | 114
 
PHP 5.3.9, nette 2.0 Zdrojový kód:
use Nette\Application\UI\Form;
use Nette\Security as NS;
		$form->addUpload('obrazek', 'Obrázek:')
    		->addRule(Form::IMAGE, 'Obrázek musí být JPEG, PNG nebo GIF.')
        	->addRule(Form::MAX_FILE_SIZE, 'Maximální velikost souboru je 1,6 MB.', 1600 * 1024 /* v bytech */);
		$form->addSubmit('set', 'Uložit data');
		$form->onSuccess[] = callback($this, 'editaceFormSubmitted');
		return $form;
	}
	public function editaceFormSubmitted(Form $form)
	{
		$values = $form->getValues();
		$user = $this->getUser();
		try {
		$this->context->database->table('sklad')->insert(array(
			'user_id'=>$user->id,
			'nazev'=>$values->nazev,
			'popis'=>$values->popis,
			'kusu'=>$values->kusu,
			'kusuvboxu'=>$values->kusuvboxu,
			'boxu'=>$values->boxu,
			'obrazek'=>$values->obrazek,  /* zde se má uložit obrázek, ale uloží se 46Bytů nečeho? */
			'cenanakup'=>$values->cenanakup,
			'cenaprodej'=>$values->cenaprodej,
			'sleva'=>$values->sleva,
			'rabat'=>$values->rabat,
			'dph'=>$values->dph,
			'datum_zapsal'=>new DateTime()
			));
			$this->flashMessage('Data byla uložena.', 'success');
			$this->redirect('SkladNovy:');
		} catch (PDOException $e) {
			$form->addError('Zadaná data nejsou správné.');
		}
	}
}
Předem děkuji za radu.

- Karel Chramosil
 - Člen | 114
 
Bohužel do proměnné $values->obrazek se uloží C:\Program Files\EasyPHP-5.3.9\tmp\php9BC8.tmp
místo cesty k obrázku. Sobor php9BC8.tmp neexistuje.

- Karel Chramosil
 - Člen | 114
 
Moc děkuji, příkaz od jansfabik uloží obrázek do databáze.
<?php
'obrazek'=>file_get_contents($values->obrazek->getTemporaryFile());
?>