Autor Zpráva
Gosty
Profil *
Zdravim,
potreboval by som pri uploadovani na stranku skontrolovat ci dana pripona je podporovana a v pripade ze nie tak upozornit este pred uploadom lebo v PHP som to spravil, no vypise to az po uploade (cize ked nahram 500MB vypise mi to po hodine). do js sa velmi nevyznam nemam cas studovat progranmujem v php cize by som vas poprosit ci by ste mi nieco take nevytvorili.
P.S.: prosim nehovorte mi aky som *****, ja potrebujem radu a nie toto
venca12
Profil
První věc, kterou můžeš použít je nastavit inputu type file parametr accept, který podle http://www.jakpsatweb.cz/html/formulare.html#input, filtruje mime typy uploadovaných souborů. Bohužel tuhle vlastnost nepodporují všechny prohlížeče a tak k tomu můžeš přihodit na třeba onChange událost, nějaký test přípony souboru, viz.:
<input type="file" onchange="zkontrolujTo(this)" accept="application/zip" />



<script type="text/javascript">

function zkontrolujTo(obj)
{

if (obj.value.substring(obj.value.length - 3) != 'zip')
{
alert('tohle neni vubec zadny zip');
} else
{
alert('jo tohle je zip jak vysity (alespon to ma tu koncovku)');
}

}

</script>
venca12
Profil
jo tady jsou mime typy http://www.hansenb.pdx.edu/DMKB/dict/tutorials/mime_typ.php
Gosty
Profil *
no to je sice vhodne pri suboroch ktore maju koncovku z troch pismen a co napr. .c, .class, alebo takto mam ich viac a nechce sa mi pre kazdy robit novu fkciu a uplne najvhodnejsie by bolo keby to prijalo ako pole
venca12
Profil
No tak mne tady za to treba ztrestej!
<input type="file" onchange="zkontrolujTo(this)" />



<script type="text/javascript">

var typy = new Array('zip','xml', 'c');

function zkontrolujTo(obj)
{

var sux = true;
for (var i=0; i<typy.length;i++)
{
if (obj.value.substring(obj.value.length - 3) == typy[i]) sux = false;

}

if (sux)
{
alert('tohle je nalevacku');
} else
{
alert('jo tohle by uz slo');
}


}

</script>


Btw. jscript není zase tak moc složitý aby jsi si takovouhle blbůstku pokud jsi skiller v php. Hnát 500MB přes prohlížeč a http mi přijde jako celkem velká prasárna. Nejsem si jistý jak ty prohlížeče fungují, ale mám takový pocit, že nejdříve do sebe uploadovaný soubor nacucnou a potom ho posílají na net. Tzn. pokud budeš posílat 500MB, sežere ti to dost paměti. Btw2. nemáš omezenou maximální velikost postovaných dat na hostingu, že ti to sežere 500MB?
Gosty
Profil *
sorry ked si to tak pochopil nemyslel som to tak inak som ti vdacny ze mi pomahas
nepovedal by som ze som skiller. no mam 15GB na hostingu.
este raz diky a sorry
venca12
Profil
Huh, neber všechno tak vážně co čteš :). Na to bacha, to že ti na hostingu dají 15GB místa ještě neznamená, že tam můžeš 15GB narvat přes formulář.

Myslel jsem, že si zařizuješ hosting sám, takže jsi si tam nastavil maximální velikost uploadovaného souboru sám. Pokud máš ale hosting někde, doporučuji ti nejdříve ověřit si, hodnotu upload_max_filesize a post_max_size, hodně hostingů ji má omezenou na hodnoty 2M, 5M, 10M. Tady na firemním máme 20M a to si připadám jako šťastný člověk, s možností nahrávat cokoli. I když to není nereálné, tak 500M mi připadá, jako dost nadprůměrná hodnota na to aby to byla pravda :-).

Btw. teď si skutečně nejsem jistý, ale uploadované soubory, budeš potom pomocí php umístit někam na správné místo, nejčastěji funkcí move_uploaded_file a tady se obávám, že php s tím pracuje tak, že soubor natáhne do sebe a pak ho někam celý plácne. A to natažení do sebe sežere nějakou tu paměť a k množství použitelné paměti slouží jiné omezení a to: memory_limit. Snadno by se mohlo stát, že dojde k překročení této hodnoty.

Možná kecám a memory_limit s uploadem nemá nic společného, ale hodnoty upload_max_filesize a post_max_size ti doporučuji si prověřit. Myslím, že když se pokoušíš kolikrát uploadovat velké soubory a překročíš limit, a v php je zakázané zobrazování výjimek, tak ti to ani nevyhodí chybovou hlášku, ale prostě se nic neuploadne a pak budeš marně nahánět, co se kde pokazilo. (Já to takhle naháním dnes a denně :-)

Hodnoty jsou vypsané v phpinfo();. Viz. tento skriptík ti vypíše nastavení php:
<?php


phpinfo();

?>
Gosty
Profil *
aa nezazrel som toto ze postovanych dat postovane data mam na 200MB mam hosting myslim ze server by som este nezvladol :D
Toto téma je uzamčeno. Odpověď nelze zaslat.

0