jQuery File Upload – jak si zachovat temp file

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

Ahoj,
Používám jQuery File Upload https://github.com/…y-FileUpload, a setkávám se s následujícím problémem. V rychlosti: jedná se o AJAXový addon, kdy při výběru souboru se uploadne.

No a mám takový problém, v tom addonu se musí naimplementovat metoda save

viz. ofík dokumentace
Nahrané soubory lze pak snadno získat při zpracování formuláře z pole $values. Prvek vrací pole přesně takových hodnot, které vrací metoda save() UploadModelu. a potřeboval bych s ním dělat další věci při zpracovávání formuláře.

Takto vypadá fce save.
`

<?php
	public function save(\Nette\Http\FileUpload $file);
?>

Mám ho ve formuláři a potřeboval bych s tím souborem dále pracovat. Např. jedna z věcí je:

<?php
$file->move(...);
?>

Zkusil jsem předat přímo tu instanci (return $file), ale bohužel akorát zahlásí něco ve smyslu:

Unable to move uploaded file ‚/data/web/virtuals/141259/virtual/tmp/phpjpz5GW‘ to ''. No such file or directory

Pochopil jsem teda, že soubor se uloží jen dočasně. Napadlo mě si to poslat přes getContents, a toImage, ale bohužel, soubory nemusí být jen obrázek a přes getContents se mi nějak nepodařilo to zpátky dostat do souboru. Také jsem zkoušel instanci naklonovat, ale to mi bylo k ničemu. Moje otázka zní: jak si mám ten temp file zachovat? Případně jak si ho „nanovo“ vytvořit, abych s ní mohl pracovat v jiné části? Děkuji

Editoval ThomasTheCat (20. 8. 2016 20:27)

JZechy
Člen | 161
+
0
-

To by ti měl právě zpracovat ten upload model, jelikož při jeho volání se předpokládá, že si soubor přesuneš, případně pak i zapíšeš do databáze.

Při getValues(), tedy okamžik, kdy získáš výsledek funkce save(), už je na to pozdě.

Editoval JZechy (20. 8. 2016 20:49)

ThomasTheCat
Člen | 7
+
0
-

Jojo paráda, děkuji. Už jsem si to vyřešil :)