ugrás a tartalomhoz

File uploader

cermon · 2007. Szep. 28. (P), 12.39
Hello!

Fájl feltöltő scriptel próbálkozok:


Kiválasztom a fájl (12kb, .jpg) , majd feltöltés és kiadja hibaüzenetet:
"A feltöltés során hiba lépett fel!"

az upload mappa létezik a szerveren az adott mapppában.

Tudna valaki segíteni mi lehet a hiba??

Köszönöm

<?php
$mappa = "upload";                                              
$filetipus = array("txt", "jpg", "rar");                    
$megengedettmeretbajt = $megengedettmeretmega * 1024 * 1024;
if(isset($_POST["feltolt"])) {
	$temp = explode(".", $_FILES['file']['name']);
	$kiterjesztes = array_pop($temp);
	$nev = implode(".", $temp);
	if($_FILES['file']['size'] > $megengedettmeretbajt) {
		echo "A File meghaladta a megengedett méretet!<br>Megengedett: <b>" . $megengedettmeretmega . " MB</b>";
	}
	else if(!in_array($kiterjesztes, $filetipus)) {
		echo "Nem megengedett filetípus!<br>Megengedett: <b>" . implode(", ", $filetipus) . "</b>";
	}
	else {
		$ujhely = $mappa . "/" . $nev . "." . $kiterjesztes;
		$n = 2;
		while(file_exists($ujhely)) {
			$ujhely = $mappa . "/" . $nev . "(" . $n . ")" . "." . $kiterjesztes;
			$n++;
		}
		if(move_uploaded_file($_FILES['file']['tmp_name'], $ujhely))
			echo  "Sikeres feltöltés!";
		else
			echo "A feltöltés során hiba lépett fel!";
	}
}
else {
	echo  "<h2>Feltöltés</h1>"
		. "<form enctype=\"multipart/form-data\" action=\"\" method=\"post\">"
		. "<input name=\"file\" type=\"file\"><br><br>"
		. "<input type=\"submit\" name=\"feltolt\" value=\"Feltöltés!\">"
		. "</form>";
}

?>
(forrás: Ratoc_simple_uploader)
 
1

ott a kód...

gex · 2007. Szep. 28. (P), 13.38
...de gondolom nem tudod értelmezni.

if (move_uploaded_file($_FILES['file']['tmp_name'], $ujhely))
    echo "Sikeres feltöltés!";
else
    echo "A feltöltés során hiba lépett fel!";
ebből kiindulva a move_uploaded_file parancs hamis (false) értékkel tér vissza. nézzük mit ír a manual erről:
If filename is not a valid upload file, then no action will occur, and move_uploaded_file() will return FALSE.

If filename is a valid upload file, but cannot be moved for some reason, no action will occur, and move_uploaded_file() will return FALSE. Additionally, a warning will be issued.

tehát vagy nem történik meg a fájlfeltöltés, ezt ellenőrizheted az is_file($_FILES['file']['tmp_name']) paranccsal, vagy nem írható a könyvtár (a webszerver számára) ahova másolni szeretnél.

off: tanácsok a weblabor használatához
- kódokhoz használd a colorer vagy code bbcode-ot
- a hibás scriptből próbáld meg kiszedni a problémás részt, mert egy egész alkalmazást nem sok embernek van kedve átnézni
2

Különböző partíciók

vbence · 2007. Szep. 28. (P), 13.40
Lehet, hogy az átmeneti upload könyvtár és ahova mozgatni szeretnéd más partíción vannak. Ilyenkor (egyes veriókban?) nem megy a move.
4

--

cermon · 2007. Szep. 28. (P), 17.04
Hogyan tudom kideríteni hogy "upload könyvtár és ahova mozgatni szeretném más partíción vannak" vagy sem???
6

böngésző

cermon · 2007. Szep. 28. (P), 17.30
Az számíthat hogy milyen böngészőt használok? (jelenleg Firefox)
7

mégegy

cermon · 2007. Szep. 28. (P), 18.57
Hello! kiprobáltam egy másik scripet is és soronként próbáltam kiiratni és megvizsgálni:



if ( isset( $_FILES['fileupl'] ) ) {

print "Név: ". $_FILES['fileupl']['name'] ."<br />";
print "Méret: ". $_FILES['fileupl']['size'] ."<br />";
print "Ideiglenes név: ". $_FILES['fileupl']['tmp_name'] ."<br />";
}

erre a köv írta ki:

"
Név: 16864.jpg
Méret: 19879
Ideiglenes név: /tmp/phpMXAwPq
"
ez azt jelenti hogy már fent a szerveren egy ideiglenes könyvtárban??
8

Feltöltés rendben

vbence · 2007. Szep. 29. (Szo), 12.57
Az adatok jók. a /tmp könyvtár valószínűleg külön partíción van. Használj copy-t és unlinket.
9

könyvtár jogosultságok

gex · 2007. Szep. 29. (Szo), 22.44
ott a másik lehetőség:
vagy nem írható a könyvtár (a webszerver számára) ahova másolni szeretnél

ezt már nézted?
10

OK-

cermon · 2007. Okt. 2. (K), 12.06
Köszönöm a segítséget!

Valóban nem volt írható a könyvtár. Már beállítottam és működik.
3

asd

DsA · 2007. Szep. 28. (P), 16.23
HI!

Hát, szerintem:
1. copy()-val csináld
2.nem igazán értem, hogy minek kell így szétszedegetni a usertől érkező dolgokat
mikor csak simán $_FILES['file']['name'] és ezt kell mozgatni... az $ujhely-re
ha nem is pont ez a hiba, akkor is vmi ezzel kapcsolatos dolog lesz, a gond.
amugy szerintem célszerű lenne a mime_type-ot is lellenőriztetni.
remélem tudtam segíteni.
DsA
5

-:--

cermon · 2007. Szep. 28. (P), 17.20
Köszi.
de mivel én kezdő phps vagyok ezért kész scriptekkel dolgozok. találtam kb 4-5 upload scriptet és egyik sem használja a copy()-t.