ugrás a tartalomhoz

File feltöltése bugos

reagenross · 2010. Szep. 1. (Sze), 14.36
Sziasztok,

az alábbi kód hibásan tölti fel a file-okat. Az első file-t még helyesen feltölti, legyen ennek a neve: elsofajl.jpg. A másodikfájl neve legyen: masodikfajl.jpg.
Ezt már hibásan tölti fel, az első nevét bebiggyeszti a második elé, tehát ez lesz:
elsofile.jpgmasodikfile.jpg és így tovább, az újabb nevét mindig berakja az előző elé.
Ez lenne a kód:
if ($_FILES['fenykep']) 
{
$fenykepekszama=count($_FILES['fenykep']['name']);
$target_path = "Pic/upload/";
for ($k=0;$k<$fenykepekszama;$k++)
{
	if (!empty($_FILES['fenykep']['name'][$k])) 
	{
	$target_path = $target_path . basename( $_FILES['fenykep']['name'][$k]); 
	echo ($_FILES['fenykep']['name'][$k]); 
		if (move_uploaded_file($_FILES['fenykep']['tmp_name'][$k], $target_path)) 
		{
			echo "Sikeres feltöltés!";
		} 
		else
		{
			echo  "$fenykepekszama Sikertelen feltöltés!";
		}
	}
}
}
Meg tudjátok állípítani ebből a hiba okát?
 
1

Megvan a megoldás, a

reagenross · 2010. Szep. 1. (Sze), 16.26
Megvan a megoldás, a $target_path változót elfelejtettem alap értékére visszaállítani a ciklus végén.
2

Biztonság

janoszen · 2010. Szep. 3. (P), 19.08
Ugyan már megválaszoltad magadnak a kérdést, de azért fölhívom a figyelmedet, hogy nagyon rossz ötlet a felhasználó által adott fájlnevet bármilyen módon használni. Nem csak szóközök lehetnek benne, hanem akár ékezetes, de még olyan karakterek is, amiket a Te szervered fájlrendszere nem ismer. Természetesen ezek helyi tesztelésnél nem fognak kijönni, de amikor feltöltöd, majd szomorú leszel. És akkor utána vissza csinálni... (Eklatáns példája ennek a mindenféle kérdőjelek kérdése.)