Dobrý večer
Je to dost amateérství ale mám menší problém s uploadem souborů.
Mám kód ve formě formulář a script který jej zpracuje když jsou v jednom souboru tak to šlape ale jakmile je formulář v jednom souboru a script v jiném kam se formulář pošle(což funguje) tak se udělá všechno sostatní ale obrázek se nenahraje
$adresar = $_SERVER['DOCUMENT_ROOT'] . "/motorky/"; //nastavení adresáře pro upload fotek, ted se uploadují fotky do adresare "fotky" v rootu webu
$obrazek = $adresar . $_FILES['soubor']['name']; //relativni cesta k uploadovanému obrázku
if (move_uploaded_file($_FILES['soubor']['tmp_name'], $obrazek)) {
list($sirka, $vyska, $typ, $atributy) = getimagesize($obrazek);
//načtení atributů obrázku, nás zajímá momentálně jen typ, to ostatní už podle jmen proměnných můžete využít sami, např. k zobrazení rozlišení obrázku
switch ($typ) {
case 1:
$pripona = " .gif";
break;
case 2:
$pripona = " .jpg";
break;
case 3:
$pripona = " .png";
break;
default:
echo "Lze uploadovat pouze soubor typu JPG, GIF a PNG.";
}
}
Dobrý večer,
takhle ten kousek kódu vypadá dobře. Vypíše vám to nějaký error?
Zkuste do htaccessu hodit "php_flag display_errors On" (bez uvozovek), jestli to něco vypíše.
bohužel na hostingu který používám je tento řádek pro htaccess zablokován a errory to nehází script normálně proběhne mám to udělané že mě to pak vrátí zpátky a hodí hlášku o úspěšném průběhu který však není tak moc úspěšný :-)
Ten uploadovací script ještě něco ověřuje? Třeba tu koncovku co vidím výše, nebo ta se provede před zavoláním skriptu? Jestli vám to v jednom souboru funguje (tedy pokud jsem to dobře pochopil, že když je kód v jednom souboru, tak to jde), tak jediný problém bude v tom volání té funkce. Voláte to jako boolean - tedy true/false? Nebo jak máte toto volání řešené.
tak jak to vidíte tak ten script je jediné co k tomu ještě je tak to je ten formulář
No právě - takže jestli ten script funguje (a mně se zdá, že ano), tak zřejmě formulář posílá požadavek nějak divně. Jak voláte ten script? A pokud zadáte jinou "$pripona" než je podporovaná, ověření proběhne? Předpokládám, že je tedy i to ověření takhle jak tu je součástí toho scriptu. (Zkoušel jste jej zakomentovat?)
ověření funguje
jediné co v podstatě se změnilo o proti normálnímu formuláři tak je enctype="multipart/form-data"
tenhle parametry jsem předtím nikdy nepoužíval skutečně se v tomhle moc nevyznám takže nevím už
pořád nechápu proč to funguje jen když je formulář i script v jednom souboru
A jak voláte ten upload script? Přes include? Je pravda, že form a script odděleně jsem nikde moc neviděl, většinou to všichni řešíme jedním souborem - je nutné to tak mít odděleně?
PS: našel jsem tohle řešení, jeví se mi velmi slibně, co vy na to: http://www.w3schools.com/php/php_file_upload.asp
No jde oto že to je v administraci a tu mám rozdělenou na dva soubory na ten s ovládáním, (formuláře) klikátka atp. a na ten který ty formuláře zpracovává je to dalece přehledněješí než to mít naflákané v jednom kdyby se jednalo jen o ten jeden script tak je mi to jedno.
Kouknu se na ten odkaz, vyzkouším a uvidím.
tak jsem použil řešení z toho odkazu ale pořád mi zůstává záhadou proč tamto nefungovalo
Tak hlavně, že to běží. Já sám mám s w3schools velmi dobré zkušenosti, tak od nich dost čerpám v případě různých problémů.
Hledat chybku by bylo možné logicky v PSPadu s otevřenými okny (s vaším řešením a novým řešením) a porovnávat postupně jednotlivé kroky v kódu. Kdyby nás tu na PHP bylo víc, určitě bychom to klidně s vámi rozebírali, ale prozatím se musíme spokojit s tím, že jsme problém odstranili (což je pro nás teď to hlavní).