Nahrávání více souborů pomocí webchemistry/multiplieru

Dvory59
Člen | 40
+
0
-

Ahoj.
Řeším nahrávání více souborů ve rámci jednoho formuláře a narazil jsem na problémy. Chtěl jsem použít klasický MultiUpload, ale tam jsem si neporadil s tím, že potřebuji zobrazit názvy nahraných souborů a případně je jednotlivě smazat ještě předtím, než se formulář odešle. To sem nedokázal vyřešit.
Tak jsem přešel na Webchemistry/Multiplier, kde jsem si říkal, že budu přidávat po jednom inputu, podle toho kolik uživatel chce nahrát souborů.

Jenže v multiplieru mám problém, že když nahraji do jednoho inputu soubor a přidám si další input pomocí btnCreate, hodí mi to error.
Tracy\Debugger::dispatch() called after some output has been sent. Try Tracy\OutputDebugger to find where output started.

Chápu proč to dělá, ale nevím jak to vyřešit.
Hodím sem kód onoho multiplieru

public function createComponentQuestionForm(){
$multiplier = $form->addMultiplier('multiplier', function (Nette\Forms\Container $container, Nette\Forms\Form $form) {
			$container->addUpload('file_exp', 'Příloha')->setAttribute('class','file-expedition');

		}, 1);
		$multiplier->addCreateButton('Přidat.',1);
}

v latte

	<div class="col-sm-3 col-sm-offset-3" n:multiplier="multiplier">
					<div class="col-sm-2">
						{label file_exp /}
					</div>
					<div class="col-sm-10 file-border">
						{input file_exp}
					</div>
					<hr>
				</div>
				<div class="col-sm-8 col-sm-offset-2">
					{btnCreate multiplier class=>ajax}
				</div>

Dá se tento problém nějak vyřešit?
Nebo poradíte mi prosím čím udělat ono nahrávání souborů? Aby když je jen načtu, zobrazily se mi všechny jednotlivě v inputu a mohl bych je případně smazat?
Šlo by to udělat jQuery pluginama, ale nevím jak to zakomponovat do samotného nette formuláře. Soubory se ani nebudou nikam ukládat, po odeslání kompletního formuláře se odešel email a soubory budou jako přílohy.

Mohu poprosit o nasměrování? Jsem na tom zaseklej už dlouho a nevím si rady.

Díky moc

Gavrilo
Člen | 46
+
0
-

Zabudnutý dump ?

Dvory59
Člen | 40
+
0
-

@Gavrilo To bych řekl, že ne. Bude to nějak v rámci toho, že nahrávám file v jednom inputu.
Když chci multiplierem přidat další input bez toho, aniž bych do toho prvního už něco nahrál, tak se mi normálně přidá

docky
Člen | 59
+
+1
-

Ahoj, osobně na tohle používám dropzone
Koukni na to, implementace je jednoduchá.

On file input nedokáže držet nahraný file po refreshnutí stránky, takže tak jak to děláš ti to stejně nebude fungovat

řešení
nějaky js plugin
multiplier + vlastní js script který ti bude přidávat a mazat file input

Editoval docky (28. 3. 2019 14:16)

Dvory59
Člen | 40
+
0
-

Jenže jakým způsobem napojit tyhle pluginy, aby se to co s nimi nahraji odeslalo až přímo s formulářem?

Martk
Člen | 661
+
0
-

Přes multiplier bych neřešil nahrávání souborů. Jakmile klikneš na přidání dalšího inputu, tak se všechny inputy se soubory resetují.

Dvory59
Člen | 40
+
0
-

No to se právě snažím nějak vyřešit bez toho :( Ale nenapadá mě jak… Nechtěl jsem soubory nahrávat na server, stačilo mě aby se odeslaly do emailu.
Ale asi to udělám tak, že je za pomocí pluginu nahraju na server a až pak je z něho teprve budu posílat.