Avatar
Jan Demel
Redaktor
Avatar
Jan Demel:

Ahoj lidi. Je tady někdo, kdo umí s Nette FileUpload? Když jsem hledal na dokumentaci na Nette, jak se to dělá, tak jsem z toho skoro nic nepochopil. Kdyby se tady někdo takový našel tak by jsem byl rád, kdyby tady poslal nějakou tu metodu z presenteru jak by to mohlo vypadat. Děkuji moc :)

Odpovědět 2.4.2014 16:21
To co se zdá být nemožné, je vždy možné.
Avatar
Dominika Šulcová(dominiQa):

řeším to samé , akorát chci multiupload :D našla jsem na githubu že stačí udělat

composer create-project --stability="dev" jkuchar/multiplefileupload-example mfu-example

ale netuším kam to napsat, a jestli jsem to dobře pochopila, tak pak by mělo jít normálně přidat prvek

$this->addMultipleFileUpload("upload","Attachments");
Nahoru Odpovědět 3.4.2014 17:05
I ♥ nutella
Avatar
kashpi
Redaktor
Avatar
kashpi:

Za předpokladu, že chceš nahrát obrázek:

protected function createComponentNajakejForm()
{
  $form = new \Nette\Application\UI\Form;
  $form->addUpload("file","Obrázek 1");
  $form->addSubmit("save", "Uložit")->onClick[] = callback($this, "saveNecoClicked");
}
public function saveNecoClicked(\Nette\Forms\Controls\Button $button)
{
  $form = $button->form;
  $values = $form->values;
  $file = $values['file']
  // kontrola jestli se jedná o obrázek a jestli se nahrál dobře
  if($file->isImage() and $file->isOk()) {
    // oddělení přípony pro účel změnit název souboru na co chceš se zachováním přípony
    $file_ext=strtolower(mb_substr($file->getSanitizedName(), strrpos($file->getSanitizedName(), ".")));
    // vygenerování náhodného řetězce znaků, můžeš použít i \Nette\Strings::random()
    $file_name = uniqid(rand(0,20), TRUE).$file_ext;
    // přesunutí souboru z temp složky někam, kam nahráváš soubory
    $file->move(UPLOAD_DIR . '/data/'. $file_name);

    //v případě, že chceš vytvořit z obrázku i miniaturu
    $image = \Nette\Image::fromFile(UPLOAD_DIR . '/data/'. $file_name);
    if($image->getWidth() > $image->getHeight()) {
      $image->resize(140, NULL);
    }
    else {
      $image->resize(NULL, 140);
    }
    $image->sharpen();
    $image->save(UPLOAD_DIR . '/data/thumbs/'. $file_name);
  }
}

Snad je to OK, píšu to bez testování :)

Jinak na multiupload jsem používal jak píšeš od Honze Kuchaře
http://addons.nette.org/…lefileupload
Ale na nový projekty se podívám po něčem jiným, myslím, že nette toto už taky nějak řeší
viz
http://forum.nette.org/…lly-released
Forms
- UploadControl allowes multiple files upload

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +1 4.4.2014 8:21
Avatar
Odpovídá na kashpi
Dominika Šulcová(dominiQa):

na něco jsem se tam podívala, ale hlásí mi to chybu

Call to undefined method Nette\Forms\Controls\MultiUploadControl::addMultiUpload()

a tu třídu mám z toho Githubu.

Nahoru Odpovědět 4.4.2014 16:47
I ♥ nutella
Avatar
kashpi
Redaktor
Avatar
Odpovídá na Dominika Šulcová(dominiQa)
kashpi:

Takže sem hledal nějakej projekt na Nette 2.0+ co tu mám, ale v žádném jsem to nepoužil (sice použil, ale pak předělal, takže to tam nemám). Mám jeden kde je i fotogalerie a tam používám Plupload
http://addons.nette.org/cs/mfu
Vím, že s ním nebyly takové problémy jako s MFU a stejně sem využíval jen tu část Plupload z něj. Zkus se na něj podívat. Klidně kdyby nebylo jasné z toho návodu, tak zkusím zkopírovat co mám já, ale nezaručuji, že na něco nezapomenu, stejně jsem jel podle tohoto

 
Nahoru Odpovědět  +1 4.4.2014 17:13
Avatar
Odpovídá na kashpi
Dominika Šulcová(dominiQa):

díky, ale nevím co je přesně myšleno tímto -

jQuery a jQuery UI v hlavičce i s patřičnými css

jenom knohovny nebo něco jiného?

Nahoru Odpovědět 4.4.2014 17:49
I ♥ nutella
Avatar
kashpi
Redaktor
Avatar
kashpi:

jenom ty knihovny

 
Nahoru Odpovědět 4.4.2014 18:35
Avatar
Jan Demel
Redaktor
Avatar
Nahoru Odpovědět 4.4.2014 18:54
To co se zdá být nemožné, je vždy možné.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.