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
  1. <?php  
  2. $mappa = "upload";                                                
  3. $filetipus = array("txt""jpg""rar");                      
  4. $megengedettmeretbajt = $megengedettmeretmega * 1024 * 1024;  
  5. if(isset($_POST["feltolt"])) {  
  6.     $temp = explode("."$_FILES['file']['name']);  
  7.     $kiterjesztes = array_pop($temp);  
  8.     $nev = implode("."$temp);  
  9.     if($_FILES['file']['size'] > $megengedettmeretbajt) {  
  10.         echo "A File meghaladta a megengedett méretet!<br>Megengedett: <b>" . $megengedettmeretmega . " MB</b>";  
  11.     }  
  12.     else if(!in_array($kiterjesztes$filetipus)) {  
  13.         echo "Nem megengedett filetípus!<br>Megengedett: <b>" . implode(", "$filetipus) . "</b>";  
  14.     }  
  15.     else {  
  16.         $ujhely = $mappa . "/" . $nev . "." . $kiterjesztes;  
  17.         $n = 2;  
  18.         while(file_exists($ujhely)) {  
  19.             $ujhely = $mappa . "/" . $nev . "(" . $n . ")" . "." . $kiterjesztes;  
  20.             $n++;  
  21.         }  
  22.         if(move_uploaded_file($_FILES['file']['tmp_name'], $ujhely))  
  23.             echo  "Sikeres feltöltés!";  
  24.         else  
  25.             echo "A feltöltés során hiba lépett fel!";  
  26.     }  
  27. }  
  28. else {  
  29.     echo  "<h2>Feltöltés</h1>"  
  30.         . "<form enctype=\"multipart/form-data\" action=\"\" method=\"post\">"  
  31.         . "<input name=\"file\" type=\"file\"><br><br>"  
  32.         . "<input type=\"submit\" name=\"feltolt\" value=\"Feltöltés!\">"  
  33.         . "</form>";  
  34. }  
  35.   
  36. ?>  
(forrás: Ratoc_simple_uploader)
 
1

ott a kód...

gex · 2007. Szep. 28. (P), 13.38
...de gondolom nem tudod értelmezni.
  1. if (move_uploaded_file($_FILES['file']['tmp_name'], $ujhely))  
  2.     echo "Sikeres feltöltés!";  
  3. else  
  4.     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.