ajax multiple upload control

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

Caute, neviete mi poradit nejake funkcne riesenie pre nette 2.3 ajax multiple upload control?
Skusal som
jkuchar/multiplefileupload : neprebehne ani composer install koli zavyslostiam a skusal som aj JZechy / jQuery-FileUpload ktory sice nainstalujem a bezi ale ma problem s validaciou pri validaci max files. Rovnako tento problem je v deme

Neviete mi poradit nejake funkcne riesenie ktore mate odskusane?

JZechy
Člen | 161
+
0
-

@duskohu O který problém konkrétně jde? Případně na to na githubu můžeš založit issue.

duskohu
Člen | 778
+
0
-

@JZechy Nejdem posielat issue lebo neviem ci je to bug alebo zamer, napisem to sem:

  1. Nahraj viac ako je max limit obrazkov a nedaju sa vymazat zo zoznamu obrazky ktore su nad tento limit
  2. Nahraj viac ako je max limit obrazkov odstran niektore obrazky zo zoznamu, nemali by sa nepovolene obrazky povolit pokial suma obrazkov nepresahuje max limit?

Editoval duskohu (28. 12. 2016 21:08)

JZechy
Člen | 161
+
0
-

@duskohu

  1. Udělat to tak, aby se ze seznamu dali odstranit není problém. Ono to totiž ani ve výsledku nic neovlivňovalo, že by to třeba omezovalo max limit, tudíž jsem se tímhle nějak moc dál nezabýval.
  2. Tady se přiznám, že tu druhou část věty v souvislosti s tou první moc nechápu… Mohli bys mi to trochu rozvést?
duskohu
Člen | 778
+
+1
-

JZechy napsal(a):

@duskohu

  1. Udělat to tak, aby se ze seznamu dali odstranit není problém. Ono to totiž ani ve výsledku nic neovlivňovalo, že by to třeba omezovalo max limit, tudíž jsem se tímhle nějak moc dál nezabýval.
  2. Tady se přiznám, že tu druhou část věty v souvislosti s tou první moc nechápu… Mohli bys mi to trochu rozvést?

@JZechy
2. Takze ked mas v deme max files 10 a ty nahras 11 jeden obrazok (na konci) je v nepovolenom stave, cize oznacilo ho ze ho nanahra, ale ked vymazem zo zoznamu napr. 1 obrazok, tak v tom pripade mam 10 obrazkov a to by malo oznacit ten na konci ze je ok, ale on stale ma hlasku "Maximální počet souborů je 10"a teda ho ani nenahra aj ked mam v zozname 10 suborov.

JZechy
Člen | 161
+
0
-

@duskohu
Jo takhle… No, je fakt, že ten seznam nemá zpětně žádnou interakci, ono to aktuálně ani není možné, protože buď se obrázek odešle a zůstane na něj reference na serveru nebo se nepošle a nikde se nikam nic neuloží.

To by i za issue stálo.

duskohu
Člen | 778
+
+1
-

@JZechy Cau, tak som nahodil tvoju komponentu a validujem vo vlastnej metode $form->onValidate[] = array($this, 'validateForm');
mam ale problem, ked sa spusti tato validacna metoda, staci ked sahnem na values $values = $form->getValues(), tak ked si dam vypisat values v onSuccess metode $form->onSuccess[] = array($this, 'processAdd'), tak je pole $values['files'] prazdne. Ked nepouzijem onValidate tak sa pole $values['files'] naplni.

Editoval duskohu (3. 1. 2017 17:11)

JZechy
Člen | 161
+
0
-

@duskohu Ahoj, díky za report (zapsáno jako Issue #13). Problém je v tom, že při volání getValue() (či getValues()) se okamžitě vymaže cache pro současnou frontu, tudíž už v onSuccess[] v cachi už nic není a proto je pole prázdné.

Chybu během odpoledne/večera odstraním, do té doby, pokud to potřebuješ akutně napravit, stačí zatím smazat řádek 423, viz. předchozí odkaz.

Nicméně jsem rád, že ses nakonec uploader rozhodl nasadit! :)

duskohu
Člen | 778
+
0
-

JZechy napsal(a):

@duskohu Ahoj, díky za report (zapsáno jako Issue #13). Problém je v tom, že při volání getValue() (či getValues()) se okamžitě vymaže cache pro současnou frontu, tudíž už v onSuccess[] v cachi už nic není a proto je pole prázdné.

Chybu během odpoledne/večera odstraním, do té doby, pokud to potřebuješ akutně napravit, stačí zatím smazat řádek 423, viz. předchozí odkaz.

Nicméně jsem rád, že ses nakonec uploader rozhodl nasadit! :)

@JZechy Ma to jeden hacik. Priklad:
Odosles form, v onValidate[] vytvoris addError tym padom sa nedostane do onSuccess[], formular sa nerefreshne, a odosles znova bez suborov, referencia na session stale ostava, ale files v tmp uz niesu.

Editoval duskohu (4. 1. 2017 8:17)

JZechy
Člen | 161
+
0
-

@duskohu Horko těžko přemýšlím, jestli mi někde zůstal uložený soubor, když jsem odeslal špatně vyplněný formulář… Leda když měl formulář JS validaci.

Řekl bych, že se soubory to máš jako s heslem, když se odeslaný formulář vrátí s chybou, taky tam heslo není. Nenapadá mě ani, jestli se tohle dá nějak řešit.

duskohu
Člen | 778
+
0
-

JZechy napsal(a):

@duskohu Horko těžko přemýšlím, jestli mi někde zůstal uložený soubor, když jsem odeslal špatně vyplněný formulář… Leda když měl formulář JS validaci.

Řekl bych, že se soubory to máš jako s heslem, když se odeslaný formulář vrátí s chybou, taky tam heslo není. Nenapadá mě ani, jestli se tohle dá nějak řešit.

@JZechy Prepac asi som sa zle vyjadril, ja som vymazal ten riedok co si mi pisal, Ono ze tam tie files v tempe niesu, to je ok, ale v session su, a to je zle. Cize ked odoslem formular znovu po tom ako neprejde validaciou, a nevlozim znovu files do uploadu, a odoslem, tak v $values tie files su cize sa nikde nezmazala cache.

Editoval duskohu (4. 1. 2017 9:33)

duskohu
Člen | 778
+
0
-

Cize cache sa mazat ma cca ked sa mazu files v tempe a to je ked skript skonci php.net : „The file will be deleted from the temporary directory at the end of the request if it has not been moved away or renamed.“

zatial som to vyriesil, a to je asi jedine riesenie:

	public function __destruct() {
		$this->cache->remove($this->getTokenizedCacheName($this->token));
	}
JZechy
Člen | 161
+
0
-

@duskohu Jo, nějak takhle jsem nad tím přemýšlel. Pokud to teda funguje jak má, můžeš založit PR? :)