Udělal jsem si formulář, podíval jsem se na kód, jak to má na upload souborů vypadat, ale tomuhle serveru se to moc nelíbí, co s tím mám dělat?
Jednou, mi to hlásí, že na serveru žádný tento soubor není (404) a pak že je tam nějaký problém s tím nahrávacím skriptem, co s tím mám dělat?
Je upload souborů z počítače na server nějak omezený, nebo jinak?
Rád bych, aby se mi dostavilo odpovědi co nejdříve, je také možné, že mám špatně kód?:
<form method="post" enctype="multipart/form-data">
Uploadovaný soubor: <input type="file" name="jmeno_souboru">
<input type="submit" value="Uploadovat">
</form>
<?php
if (is_uploaded_file($_FILES["jmeno_souboru"]["tmp_name"])):
$name = $_FILES["jmeno_souboru"]["name"];
move_uploaded_file($_FILES["jmeno_souboru"]["tmp_name"], "/temp/$name");
endif;
?>
Nerozumím tomu, nemyslím si, že je tam chyba a když to spustím, tak to řiká: Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to access..... a pak jenom odkaz na soubor....
"Unable to access ....." ti nic neříká? Chybové hlášky jsou sice pro neznalé španělskou vesnici, ale na druhou stranu se snaží co nejsnáze pomoci. V tomhle případě prostě říká že nemá přístup k ..... To znamená, že tam, kde něco má být, nic není nebo k němu nemá práva. Ověř si, zda existuje adresář temp a zda je cesta správná.
Jednou hlásí 404. Form bez parametru action se většinou volá na sebe sama, ale někdy se může zaseknout a poslat tě někam jinam. Případně může dojít k tomu, že se překročí čas zpracování.
Z nadpisu vidím import souborů. V tomto případě je i otázka, jak velké soubory se nahrávají. Nahrávání tímto způsobem je dosti omezené. Z důsledku techniky přenosu je možné poslat pouze omezenou velikost souboru. Standardně je to 2MB. Cokoli nad se ignoruje nebo vyvolá chybu.
Tak já ještě trochu rozvinu Tomíkovu reakci. Adresář /temp neexistuje a pokud by existoval, neměl bys k němu přístup -- protože začínáš přímo v rootu souborového systému. Správně bys tam měl mít:
a) relativní cestu: 'temp/'.$name
b) celou absolutní cestu od kořene, tedy něco (přesnou cestu zjistíš v phpinfo()) jako '/3w/wz.cz/e/eshop-test/temp/'.$name
Takže co mám dělat?, už tomu trochu začínám rozumět.....
Když kouknu do zdrojáku tvojí jednoduché stránky, tak o tom začínám mít oprávněné pochybnosti... :-)
Začni od píky: tag H1 nepatří ve zdrojáku do hlavičky stránky, form je párový tag...
Ta hláška celá je: Unable to access /3wtmp/image.gif in /7p/wz.cz/e/eshop-test/test.php on line 17 - takže se koukni na ten řádek 17 (nebo nejbližší okolní), jestli tam neodkazuješ na soubor nebo složku, které nemáš na webu (nebo k nim nemáš práva). Tady bych považoval za podezřelý název adresáře 3wtmp (možná proto, že je neděle). :-)