Upresneni typu souboru ve fileDialogu

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

Dobry den,

kdyz dam do formulare „chlivek“ na vlozeni souboru

<?php
$form->addFile('filename', 'XML soubor');
?>

Jak mohu specifikovat, ze formular prijme pouze XML soubory, to znamena minimalne ve filedialogu vyfiltrovat soubory podle pripony xml?

Tomik
Nette Evangelist | 485
+
0
-
<?php
$form->addFile('filename', 'XML soubor')
     ->addRule(Form::MIME_TYPE, 'Soubor musí být XML.', 'application/xml');
?>

Toto ovšem zařídí pouze serverovou validaci. To znamená, že uživatel může vybrat a uploadnout cokoli, ale pokud to není XML, zařve to na něj. Jen pomocí HTML není možné omezit nijak OpenFileDialog na konkrétní přípony. Pokud to vážně potřebuješ, je nutné podívat se po nějaké flash/js komponentě (např. www.uploadify.com).

phx
Člen | 651
+
0
-

Jen bacha na to aby na serveru byly pozadovane rozsireni PHP. Jinak toto vubec nefunguje:( Bohuzel to jinak nejde. Sice nejaky mime_type posila prohlizec, ale to neni duveryhodne.

rezorcinol
Člen | 25
+
0
-

Tak jsem tam pridal „->addRule(Form::MIME_TYPE, ‚Soubor musí být XML.‘, ‚application/xml‘);
“ jenze ted mi to nebere ani normalni xml soubor. Pritom ma priponu xml a obsahuje validni xml data. Cim to?

nAS
Člen | 277
+
0
-

Vyzkoušej, jestli by náhodou nefungoval MIME typ text/xml.

Honza Kuchař
Člen | 1661
+
0
-

Ještě si zkontroluj jestli máš rozšíření finfo

phx
Člen | 651
+
0
-

Mozna by nebylo spatne dodelat do Nette nejakou moznost jak zjistit jaky mime_type byl dle Nette prijat. Osobne jsem kuli ladeni musel delat zasah primo do Nette coz je kapku neprakticke.

Honza Kuchař
Člen | 1661
+
0
-

To tam bylo, ale David to odstranil. (teda pokud myslíš přístup k tomu, co poslal uživatel)