• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

bilder upload

Status
Für weitere Antworten geschlossen.

daschifahrer

Neues Mitglied
ich habe mich mal an nen bilder upload gemacht der mir aber eine fehlermeldung übergibt und nicht hochlädt
ich weiß auch nicht liegt es an funpic das die move_uploaded_file () nicht annehmen
hier ist mien code:
Code:
<?php 


$uploaddir = 'fatler.fa.funpic.de/uploads';
$tst = $_FILES['userfile']['tmp_name'];
$name =  $_FILES['userfile']['name'];

print "<pre>";
if (move_uploaded_file($tst, $uploaddir/$name )) {
    print "File is valid, and was successfully uploaded.  Here's some more debugging info:\n";
    print_r($_FILES);
} else {
    print "Possible file upload attack!  Here's some debugging info:\n";
    print_r($_FILES);
}

?>

Hierbei kommt jedoch eine mir sehr unssinige fehlermeldung herraus:

Code:
[B]Warning[/B]:  Division by zero in [B]/usr/export/www/vhosts/funnetwork/hosting/fatler/hochladen.php[/B] on line [B]9[/B]

Possible file upload attack!  Here's some debugging info:
Array
(
    [userfile] => Array
        (
            [name] => ich.jpg
            [type] => image/jpeg
            [tmp_name] => /usr/export/tmp/phpSGbI8v
            [error] => 0
            [size] => 19961
        )

)
 
ok danke dir!!
aber jez kommt immer noch diesselbe fehlermeldung
kann mir vlll jmd sagen was diese fehlermeldung bedeutet?
 
Zuletzt bearbeitet:
Sorry, total verpennt auf die eigentliche Frage zu antworten. Ehm, das Statement in move_uploaded_file() ist falsch.

move_uploaded_file($tst, $uploaddir/$name )
Bedeutet: Dass du die Temp Datei $tst in den Upload ordner $uploaddir geteilt durch $name packen willst. -> Funktioniert nicht, müsste also so aussehen:

PHP:
move_uploaded_file($tst, $uploaddir . '/' . $name )
 
hmm leuchtet ein geht aber immer noch net
ist hier vll noch jmd bei funpic das es vll daran liegt
ich habe in deren forum nichts gefunden

EDIT:// vll liegts auch an meiner eigenen dummheit und unproffesionalität in php
könt ihr nochmal das ganze script überschauen?
ich schicke auch nochmal das html script xD

Code:
<html>
<body>
<form enctype="multipart/form-data" action="hochladen.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="300000000000000000000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
</body>
</html>
 
Funzt:

PHP:
<html>
<body>
<form enctype="multipart/form-data" action="blubb.php" method="post">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File" name="submit">
</form>
</body>
</html>

<?php 

if(isset($_POST['submit'])) {
	$uploaddir = './uploads';
	$tst = $_FILES['userfile']['tmp_name'];
	$name =  $_FILES['userfile']['name'];
	$type = $_FILES['userfile']['type'];

	print "<pre>";
	if (move_uploaded_file($tst, $uploaddir. '/' .$name )) {
	    print "File is valid, and was successfully uploaded.  Here's some more debugging info:\n";
	    print_r($_FILES);
	} else {
	    print "Possible file upload attack!  Here's some debugging info:\n";
	    print_r($_FILES);
	}
}
?>

Ich denke, dass es an dem Eintrag "MAX_FILE_SIZE" im HTML Code lag. Btw darfst du nicht vergessen, dass die Dateien nicht größe als 1.5 Mb sein dürfen.
 
hey, okey ich kenn mich mit fileuploads und php gar net aus...-.-"

ich wollt mal fragen, wie ich etz dem File einen geben kann, eine bestimmte größe angebe und nur bilder hochgeladen werden dürfe?

gruß wolf360
 
$_FILES ist ja ein array

[name] => ich.jpg
[type] => image/jpeg
[tmp_name] => /usr/export/tmp/phpSGbI8v
[error] => 0
[size] => 19961

d.h. du musst nur checken, das $_FILE['size'] kleiner als die max.größe ist
und $_FILE['type'] =
image/jpeg
image/png usw ist
 
okey abba wenn ich etz z.B.

PHP:
$name =  $_FILES[userfile]['name'] => Hi.jpeg;
mach, dann kommt folgender fehler:

unexpected T_DOUBLE_ARROW
 
also erstmal ganz grob... du überschreibst keine $_FILE variablen sonst komm ich vor bei und katsch diah eine ^^

zweitens weist man variablen einen wert mit = zu und nicht mit =>

und drittens hast du die anführungszeichen vergessen also = 'Hi.jpg';

xD mehr fehler in so einem kleinen stückchen text hab ich noch nie gesehen ^^
 
ja ich hab des blos gmacht wiel des BlackMaster so gsagt hat..-.-"

$_FILES ist ja ein array
[name] => ich.jpg
[type] => image/jpeg
[tmp_name] => /usr/export/tmp/phpSGbI8v
[error] => 0
[size] => 19961

und wie macht ich des wenn $_FILES[userfile]['name'] bereits einer Varibale zugewisen habe?
also z.B. $name = $_FILES[userfile]['name']?


EDIT: Achso, ich glaub ich hab des falsch verstanden:

also mit $_FILES[userfile]['name'] = "test.jpeg" weiß ich den name zu?
 
Zuletzt bearbeitet:
so würdest du das machen aber $_FILES[userfile]['name'] enthält den Namen den man per uploadscript hochgeladen hat ;)
 
nein mit
move_uploaded_file($tst, $uploaddir/$name ) ;)
$tst = Temporäres Verzeichnis
 
BlackMaster bitte wenn du nicht genau weißt was du sagst xD naja egal

PHP:
move_uploaded_file($_FILES['userfile']['tmp_name'],
                   './ordner/'.$_FILES['userfile']['name'])
 
achso okey

und wie mach ich des etz am besten mit der type und größen überprüfung?

PHP:
if(($_FILES['userfile']['type'] == 'image/gif') && ($_FILES['userfile']['size'] > 100)){
    if (move_uploaded_file($tst, $uploaddir. '/test.gif' )) {
        echo "Datei erfolgreich hochgeladen";
    } else {
      echo  "Error";
    }
    }
    else{
	echo "Fehler beim Hochalden";
    }
?

gruß wolf360
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben