Nette upload obrazkou pomocou atributu multiple
- lukacenko
- Člen | 10
cawte prosim vas potrebujem poradit, chcem pomocou addUpload() uploadnut
obrazky pomocou atributu multiple ale ked si po odoslani postu dam dump POST tak
stale mam tam len jeden obrazok ten posledny potrebujem vsetky ako to docielit
prosim ? nechcem ziadne komponenty ani nic dakujem.
tu je dump: potrebujem tu vsetky subory nie len jeden
<?php
caption => "Soubor:" (7)
value protected => Nette\Http\FileUpload(5) {
name private => "icon_add.jpg" (12)
type private => NULL
size private => 16454
tmpName private => "C:\\xampp\tmp\phpCEFA.tmp" (24)
error private => 0
}
?>
a tu kod:
<?php
protected function createComponentTestForm()
{
$form = new Form();
$form->addUpload('img', 'Soubor:')->setAttribute('multiple', TRUE);
$form->addSubmit('upload', 'Vložit')->getControlPrototype()->class('button');
$form->onSuccess[] = callback($this, 'xmlFormSubmitted');
return $form;
}
public function TestFormSubmitted(Form $form)
{
dump($form['img']);
// zobrazi sa mi len posledny subor(obrazok) potrebujem vsetky dakujem
}}
?>
- Tomáš Votruba
- Moderator | 1114
Možnost nahrát více souborů:
$form->addUpload('img', 'Soubor(y):', TRUE);
Pomocí dump($form['img']);
přistupuješ ke komponentě
UploadControl
, ne jejím k hodnotám.
Zkus takto:
public function TestFormSubmitted(Form $form)
{
$values = $form->values;
dump($values['img']);
}
Editoval Tomáš Votruba (20. 2. 2014 14:32)
- lukacenko
- Člen | 10
Tomáš Votruba napsal(a):
Možnost nahrát více souborů:
$form->addUpload('img', 'Soubor(y):', TRUE);
Pomocí
dump($form['img']);
přistupuješ ke komponentěUploadControl
, ne jejím k hodnotám.
Zkus takto:public function TestFormSubmitted(Form $form) { $values = $form->values; dump($values['img']); }
skusil som pouzit $form->addUpload(‚img‘, ‚Soubor(y):‘, TRUE); ale potom mi nejde oznacit viac ako jeden obrazok
- Tomáš Votruba
- Moderator | 1114
Tato feature je dostupná od verze 2.1.0
Doporučuji ti spíše opravit chyby vzniklé přechodem, než kvůli nim zůstávat na staré verzi.
Co ti teď nejde?
- lukacenko
- Člen | 10
Tomáš Votruba napsal(a):
Tato feature je dostupná od verze 2.1.0
Doporučuji ti spíše opravit chyby vzniklé přechodem, než kvůli nim zůstávat na staré verzi.
Co ti teď nejde?
vyhodi mi chybu:
Call to a member function getName() on a non-object search►
<?php
$file = $form['img']->getValue();
$name = $file->getName();
?>
- lukacenko
- Člen | 10
Tu je kod:
<?php
namespace App\Presenters;
use Nette,App\Model;
/**
* Homepage presenter.
*/
use Nette\Application\UI;
use Nette\Application\UI\Form;
use Nette\Forms\Controls\UploadControl;
class UploadPresenter extends BasePresenter
{
protected function createComponentImageUploadForm()
{
$form = new Form();
// $form->addUpload('img', 'Subor:');
$form->addUpload('img', 'Soubor(y):', TRUE);
$form->addSubmit('upload', 'Vložit')->getControlPrototype()->class('button');
$form->onSuccess[] = callback($this, 'submit');
return $form;
}
public function submit(Form $form)
{
$file = $form['img']->getValue();
$name = $file->getName();
$id = $this->getUser()->getId();
$upload = "/www/data/" . $name . $id;
if ($file->isOK()){
$file->move($upload);
}
$this->flashMessage($upload, 'success');
$this->redirect('this');
}
}
?>
- David Matějka
- Moderator | 6445
vrati ti to totiz pole s Nette\Http\FileUpload
, musis to projit
foreach-em
- lukacenko
- Člen | 10
presiel som do noveho nette a potom mi frontmodule hodi: error Call to a
member function getService() on a non-object admin module ide normalne neviete
mi s tym pomoct ?
na tomto riadku:
v subore File: …\vendor\nette\nette\Nette\Application\UI\Control.php:68
$template->setCacheStorage($presenter->getContext()->getService(‚nette.templateCacheStorage‘));
Editoval lukacenko (21. 2. 2014 8:31)