jQuery-FileUpload, snadný upload souborů
- cermakpavel
- Člen | 4
Je možné nastavit filtraci souborů (typů a případně i počtu) přímo v průzkumníkovi? Tedy že se otevře okno pro výběr souborů a již zde je nastavena filtrace dejme tomu třeba jen na pdf.
- JZechy
- Člen | 161
Tak verze 2.0.0-beta1 je na světě a čeká na svá první stažení :).
Pro novou verzi bylo aktualizováno i demo s ukázkami.
Editoval JZechy (28. 9. 2017 14:54)
- JZechy
- Člen | 161
Na pátek 13. vychází 13. release, snad nebude i tak smolný :-). Verze 2.0.0-beta2.
- Lze lokalizovat javascriptové hlášky uploaderu. Přidán jak setter, tak i položka do konfigurace.
- Lze přidávat výchozí soubory.
- Dle issue #27 Přidán setter a položka konfigurace pro nastavování vlastních hodnot pro konfiguraci blueimpova uploaderu.
Všechny změny verze 2.0.0 shrnuty na wiki.
- Tomáš Brchaň
- Člen | 13
@JZechy: Ahoj, díky moc za ty úpravy. Přešel jsem na beta verzi a
translator funguje. Sice bych preferoval default hlášky v angličtině, ale
tím, že to jde snadno v configu změnit, tak to tak nevadí.
Jen drobný nedodělek, není přeložen renderer, takže jsou tam natvrdo
hlášky, které se nepřekládají, jako „Nahrát soubor“. Vyřešil jsem
to vlastním rendererem, kde jsem si změnit vlastně jen 3 řádky
asi takto:
$button->setText($this->translator->translate("Upload File"));
Jinak je to super a díky moc za takovou práci.
Jo a ještě jeden dotaz. Dá se zavolat nějaká JS funkce po úspěšném
uploadu? Potřeboval bych refresh galerie obrázků, třeba pomocí AJAXu.
Díky moc.
- Mart78
- Člen | 31
Ahoj, prosím o pomoc, při volání
$imagesUpload = $form->addFileUpload('anotherImages');
to vyhodí Nette\DI\MissingServiceException – Service of type
Nette\Localization\ITranslator not found.
Vyhazuje to FileUploadControl.php na řádku 42.
Mám Nette 2.4. V configu mám jen zaregistrovanou extenzi a
fileUpload:
maxFileSize: 2M
Zkusil jsem v configu nastavit translator: Nette\Localization\ITranslator a to vyhodilo že parametr je string místo instance.
Neví někdo co s tím mám dělat?
- Mart78
- Člen | 31
Můžeš se ještě prosím mrknout na controller.js? Po
uploadu souboru mi js konzole vyhazuje chybu
Uncaught TypeError: Cannot read property 'appendChild' of null
na
řádku 132.
V třídě renderu mám metodu init takovou:
public function init() {
parent::init();
// nasledujici elementy nepotrebuji
$this->elements["globalProgressValue"] = null;
$this->elements["fileProgressValue"] = null;
$this->elements["fileProgress"] = null;
$this->elements["globalProgress"] = null;
$this->elements["fileProgress"] = null;
$this->elements["filePreview"] = null;
$this->elements["filename"] = null;
$this->elements["imagePreview"] = Html::el("img"); // nutné, jinak JS vyhazovalo že je element null
$this->elements["container"] = Html::el("div"); // nepomaha, stale JS vyhazuje null
$this->elements["input"]->setAttribute('id', 'dalsiobrazky')->setAttribute('name', 'anotherImageFile');
$this->elements["delete"]->addAttributes([
"class" => "fileupload-delete-button"
])->setHtml("×");
}
EDIT: už jsem na to přišel, sry za zbytečný post. Metoda buildDefaultTemplate() musí vracet element container.
Editoval Mart78 (30. 11. 2017 15:33)
- BuMoRi
- Člen | 109
Ahoj, zkouším nejnovější beta verzi (nikdy předtím jsem tuto komponentu nezkoušel) a mám 2 dotazy:
- jak se používají ty renderery? z návodu jsem to nevyčet
- když v šabloně použiju
{control fileUpload}
, je vše v pořádku. Ale chtěl bych formulář vykreslit manuálně:
<?php
<form n:name="fileUpload" class="form-horizontal">
<div class="form-group">
<label n:name="uploader" class="control-label">Nahrání</label>
<input n:name="uploader" class="form-control">
</div>
</form>
?>
Takhle se mi ale zobrazí textový input…
- BuMoRi
- Člen | 109
Já se omlouvám za začátečnickej dotaz: když chci použít třeba už
vytvořený Bootstrap3Renderer, jak ho prohodím za ten základní
Html5Renderer? Zkouším v presenteru:
use Zet\FileUpload\Template\Renderer\Bootstrap3Renderer;
A ve formuláři:
$form->setRenderer(new Bootstrap3Renderer);
To spíš jen hádám, nikdy jsem žádné renderery nepoužíval. Takto to ale
nefunguje, chybí argument.
- BuMoRi
- Člen | 109
Ahoj, poradil by mi prosím někdo s nastavením?
<?php
$form = new Form();
/** @var FileUploadControl $upload */
$upload = $form->addFileUpload('uploader');
$upload->setRenderer(Bootstrap4Renderer::class);
$upload->setMaxFileSize('1M');
$upload->setMaxFiles(2);
$upload->setUIMode(FileUploadControl::UI_MINIMAL);
?>
Funguje mi akorát setRenderer.
SetMaxFileSize také funguje, ale vždy zahlásí „Maximální velikost
souboru je 2MB.“. Dle dokumentace nastavit chybovou hlášku
přes maxSize. Netuším kde a jak, v configu? To se mi nepodařilo.
SetMaxFiles mi nefunguje, uploader nahrává neomezený počet souborů.
SetUIMode: hned tracy vyhodí chybu Undefined class constant
‚UI_MINIMAL‘.
- BuMoRi
- Člen | 109
Je mi jasný, že chyba je u mě, ale naposled teda ještě zkusim
otravovat: updatnul jsem na beta5, přesunul složku www, vymazal cache a takto
mám config:
extensions:
fileUpload: Zet\FileUpload\FileUploadExtension
fileUpload:
maxFiles: 3
maxFileSize: 1M
fileFilter: Zet\FileUpload\Filter\ImageFilter
uploadModel: App\Model\UploadModel
renderer: Zet\FileUpload\Template\Renderer\Bootstrap4Renderer
Omezení velikosti mi funguje perfektně, omezení počtu vůbec. Ještě nějaké nápady co bych moh mít blbě?
- pitr82
- Člen | 121
@JZechy :-) rozumím. Jsi schopen ho v blízké budoucnosti nahodit ? :-)
JZechy napsal(a):
@pitr82 Jsem hříšník… Ten mi stále visí rozdělanej bokem.
Edit:
Jde mi o translator a jeho implementaci.
Resp. jak nejlepe překládat defaultní texty: Nahrát soubor, Soubor, Stav,
když používám defaultní Renderery.
Editoval pitr82 (22. 1. 2018 13:49)
- iguana007
- Člen | 970
nettak2 napsal(a):
@JZechy Ahoj prosim ta mas aj vykreslovanie uploadnuteho obrazku? Alebo nato musim pouzit iny plugin? Diky.
Ja si tento uploader zkombinoval s https://ublaboo.org/image-storage/