MultiFileUpload addon nic se nedeje

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

Ahoj,

chtel bych se zeptat kde bych mel hledat chybu v pripade, ze kdyz spustim nahravani tak se nic nedeje, v logu se nic neobjevi a upload je stale na nula procentech, stahl jsem si cely projekt, pripojil k sobe na DB pres dibi a v databazi vytvoril tabulku files. Teprve v nette zacinam tak me prosim hned nezastrelte za mozna stupidni dotaz :(

Filip Procházka
Moderator | 4668
+
0
-

Pravděpodobně jsi na něco zapomněl. Ale to ti bez tvého kódu nejspíš nikdo nepotvrdí.

Deepress
Člen | 2
+
0
-

Prikladam kod z HomepagePresenteru, ale myslim si ze tady chyba nebude. Proto jsem se poprve ptal, kde bych mel hledat chybu :(

class HomepagePresenter extends BasePresenter {

  public function createComponentForm($name) {
    $form = new Form();
    $form->getElementPrototype()->class("ajax");

    // Uploadů můžete do formuláře samozdřejmě přidat více, ale zatím je docela nepříjemná validace a jedna chybka v JS
    $form->addMultipleFileUpload("upload","První balíček souborů")
      ->addRule("MultipleFileUpload::validateFilled","Musíte odeslat alespoň jeden soubor!")
      ->addRule("MultipleFileUpload::validateFileSize","Soubory jsou dohromady moc veliké!",100*1024);

    $form->addSubmit("odeslat", "Odeslat");
    $form->onSuccess[] = array($this,"onSubmit");

    // Invalidace snippetů
    $form->onInvalidSubmit[] = array($this,"handlePrekresliForm");
    $form->onSubmit[] = array($this,"handlePrekresliForm");
    return $form;
  }

  public function onSubmit($form) {
    $data = $form->getValues();

    // Předáme data do šablony
    $this->template->values = $data;

    $queueId = uniqid();

    // Přesumene uploadované soubory
    foreach($data["upload"] AS $file) {
      // $file je instance HttpUploadedFile
      $newFilePath = $this->context->params['appDir']."/uploadedData/q{".$queueId."}__f{".rand(10,99)."}__".$file->getName();

      // V produkčním módu nepřesunujeme soubory...
      if(!Environment::isProduction()) {
        if($file->move($newFilePath))
          $this->flashMessage("Soubor ".$file->getName() . " byl úspěšně přesunut!");
        else
          $this->flashMessage("Při přesouvání souboru ".$file->getName() . " nastala chyba! Pro více informací se podívejte do logů.");
      }
    }
  }

  public function handlePrekresliForm() {
    $this->invalidateControl("form");
  }
}