ugrás a tartalomhoz

fájlfeltöltési probléma

numen · 2007. Okt. 11. (Cs), 12.37
Sziasztok!!

csináltam egy formot, amihez dinamikusan rakhatom hozzá a fájlbeviteli mezőket, ezeknél rendre name="1,2,..."
Egy php scripttel végigszaladok aztán a $_FILES tömbön, és berakom a fájlokat a helyükre. Illetve beraknám, mert valami huncut hibát jelez a dolog.

A extrajó szolgáltatónál, aminek nem írom le a nevét máshol működött a feltöltés...

a script, amivel ügyködök, így néz ki:
<?php
$kezdet = 1;
for ($i = $kezdet; $_FILES[$i]; $i++) {
    $uploadfile = "./kepek/kep" . $i . "." . getextension($_FILES[$i]['name']);
    if (move_uploaded_file($_FILES[$i]['tmpname'],$uploadfile)) {
        echo "A(z) " . $i . ". számú fájlt sikeresen feltöltöttem...<hr/>";
    } else {
        echo "<hr/> valamit elszúrtam itt: " . $i . ". Ide próbáltam rakni: '" . $uploadfile . "'<br/><pre>"; print_r($_FILES[$i]); echo "</pre>\n";
    }
}
?>
ez a következő kimetetet adja:
...
valamit elszúrtam itt: 1. Ide próbáltam rakni: './galleries/kep1.JPG'

Array
(
[name] => IMGP0238.JPG
[type] => image/jpeg
[tmp_name] => /nfs/extra/****/phpHUm929
[error] => 0
[size] => 176286
)

valamit elszúrtam itt: 2. Ide próbáltam rakni: './galleries/kep2.JPG'

Array
(
[name] => IMGP0253.JPG
[type] => image/jpeg
[tmp_name] => /nfs/extra/****/phpILg66k
[error] => 0
[size] => 378639
)
...

(a scriptet leegyszerűsítettem)
Máshol működik a tárhelyen feltöltés, ott így néz ki a dolog:

		$uploadfile = mres("uploads/" . $sorszam . "_" . $user . "_" . $title . "." . getextension($_FILES['tetel']['name']));
		if (move_uploaded_file($_FILES['tetel']['tmp_name'], $uploadfile)) {
    		echo "UPLOAD_OK\n";
    		$meret = filesize($uploadfile);
    		$datum = date("Y-m-d H:i:s");
    		$path=$uploadfile;
    		if (mysql_query("INSERT INTO tetelek VALUES('','$sorszam','$title','$tantargy','$path','$user','$meret','$datum')")) {
    			echo "DATABASE OK";
    		} else {
    			echo "DATABASE ERROR!";
    		}
		} else {
		    echo "FILE ERROR";
		}
Szerintem a _FILES-ben való iteráción kívül minden stimmel, az iterációt pedig a virágnak megtiltani nem lehet...
V
Feltevésem szerint a move_uploaded_file -ig minden okés... Van mód rá, hogy abból több információt nyerjek?
 
1

Jogosultságok?

goph-R · 2007. Okt. 11. (Cs), 13.04
A képek könyvtár tulajdonosa, és a feltöltést végrehajtó user ugyanaz (a php-t általában a "www-data" futtatja)? Ha nem, adj a képek könyvtárának 0777-es jogot (így látatlanban). De gond lehet még a "tmp" könyvtár hiánya (hozz létre egyet), vagy próbáld még ki a sima "copy" parancsot.
2

tmp nincs; könyvtárjognak jónak kell lennie

numen · 2007. Okt. 11. (Cs), 15.16
a tulajdonos és a feltöltő ugyanaz kell legyen, mert a könyvtárat is még a scripten belül hozom létre, az itteni verzió sem működik, pedig ebben már 0777-es könyvtáron próbálkozom.

tmp könyvtárra eddig nemigen volt szükség, a másik script gond nélkül megy...

meddig marad a tmpfile a helyén?
3

szomorú (?), de igaz - megvan a megoldás

numen · 2007. Okt. 11. (Cs), 15.42
mindenkitől elnézést kérek. A probléma a következő volt:
nem $_FILES[$i]['tmpname'], hanem $_FILES[$i]['tmp_name']

...legközelebb postolás előtt bitwise hasonlítom össze őket.... _shame_
4

Nem látom a file-t!

Jumping · 2007. Okt. 27. (Szo), 20.15
Sziasztok!
Én még kezdő vagyok a programozásban és lenne egy olyan kérdésem, hogy miért nem látom a feltöltött file-t a célkönyvtárban?Mit ronthattam el?
Másik kérdésem, hogy tudok jogosultságot adni mondjuk a tmp könyvtárnak a total commanderrel?Csatolom a php kódot,előre is köszi!
<?

function feltoltes($filename,$newname) {



$_FILES[temp_file] = "/home/hosting/free/hostname/tmp/" . basename($filename);
$_FILES[$new_file] = "/home/hosting/free/hostname/feltoltes/ide/" . ($newname);

copy($temp_file, $new_file);

return;
}


if (!isset($ujnev) | $ujnev=="") {
$ujnev = $eztkell_name;
}

feltoltes($eztkell,$ujnev);


?>

<HTML>

<BODY>

<h2 align=center>A másolás sikeres!</h2>

<p align=center>
<br><br>

Az eredeti fájl neve: <?= $eztkell_name?><br>
Az új fájl neve: <?= $ujnev?><br>
A feltöltött fájl mérete: <?= $eztkell_size?><br>
A fájl típusa: <?= $eztkell_type?><br>


</p>

</BODY>

</HTML>
5

Új kérdés, új téma.

janoszen · 2007. Okt. 27. (Szo), 20.43
A cím mindent elárul. Így nem kapsz választ.
6

Miért nem kapok választ?

Jumping · 2007. Okt. 28. (V), 12.46
Helló!

Azért nem kapok választ mert most tanulom a php-t, vagy miért?
7

Fórum használat

zila · 2007. Okt. 28. (V), 15.19
Azért nem kapsz választ, mert rosszul használod a fórumot, új témának új topic-ot illik nyitni. Bár ez most pont határeset, mert a problémád hasonló az ebben a topic-ban tárgyalthoz, így nem feltétlenül kell neki új...

Hogy hasznos is legyek:
Teljesen rosszul használod a $_FILES tömböt, gyakorlatilag elrontod, ezért nem működik a file feltöltésed. Olvasd el a manual erre vonatkozó fejezetét: File feltöltés
8

Elnézést

Jumping · 2007. Okt. 28. (V), 19.26
Elnézést kérek mindenkitől, nem olvastam el a fórum szabályzatot.Köszönöm a kérdésre a választ!Zoli