PHP Nette - jak provést upload souboru a zapsat ho do databáze

PHP Nette - jak provést upload souboru a zapsat ho do databáze

Ahoj, učím se pracovat v PHP s Nette frameworkem, pročítal jsem si základní návody na vytvoření formulářů - to mi funguje. Ale nevím si rady s tím, jak provést jednoduchý upload souboru na server, soubor pak přejmenovat dle aktuálního data a zapsat jeho název do databáze MySQL. Poradí mně prosím někdo? Díky

ODPOVĚĎ


Ahoj,

pokud ti jde opravdu o jednoduchý upload souboru na server v Nette, tak můžeš zkusit následujíci konstrukci.

Ta ti nahraje soubor do /www/upload/* , přejmenuje soubor dle hodnoty z formuláře a zapíše cestu k souboru do databáze.

Presenter:



protected function createComponentUploadForm()
{

$form = new Nette\Application\UI\Form;

$form->addText('pojmenovani', 'Pojmenování souboru:')
->setRequired();
$form->addUpload('upload', 'Soubor');
$form->addSubmit('send', 'Uložit');
$form->onSuccess[] = [$this, 'uploadFormSucceeded'];

return $form;

}

public function uploadFormSucceeded($form, $values)
{

if (filesize ($values->upload) > 0) { //kdyz je soubor skutecne poslan z formu

$soubor = $values->upload;
$soubor->move("upload/" . $values->upload->name);

if($soubor->isOk()) {

//prejmenovani souboru
$soubor->move('upload/' . $values->pojmenovani. '.txt');

}

$this->database->table('soubory')->insert([
'Soubor' => ('upload/' . $values->pojmenovani. '.txt'),
]);

$this->flashMessage('Soubor byl přidán', 'success');
$this->redirect('this');

} else {

$this->flashMessage('Soubor nebyl přidán', 'failed');
$this->redirect('this');

}


}

Komentáře

Vaše reakce na PHP Nette - jak provést upload souboru a zapsat ho do databáze

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.