PHP-Upload Problem

Bash, Shell, PHP, Python, Perl, CGI
giffi
Posts: 140
Joined: 2003-05-17 14:52

PHP-Upload Problem

Post by giffi »

Hi

nachdem ich von einem alten 1&1 Root L auf einen neuen V2 Root L umgestiegen bin hab ich folgendes Problem:


Mein Bilder-Uploadscript:

Code: Select all

$path_to_file = $ordner;
$up_files = $HTTP_POST_FILES['files']; 
#Dasselbe Problem besteht auch mit $_FILES
print_r($up_files);
foreach ($up_files['name'] as $key=>$name) {
echo "Bildname: ".$name."<br>Tmpname".$up_files['tmp_name'][$key]."<br>";

	if (move_uploaded_file($up_files['tmp_name'][$key], $updir . $name))
	{
	echo "Uploaded<br>";
     		$returnm=$returnm.$name." wurde erfolgreich hochgeladen<br>";

	}
else
	{
	echo "not Uploaded<br>";
    		$errorm=$errorm.$name." Upload nicht erfolgreich<br>";
	}

   }
Hier noch die HTML-Form:

Code: Select all

<form name='upload' action='new_gal.php?eintrag=done' METHOD="POST" enctype="multipart/form-data">
<input type='hidden' name='max_file_size' value='500'>
<input type="text" name="addid" value="" size="30" maxlength="30"></td>
 Bildanzahl:
<select onChange="pic();" name="bild_anz">
      <option selected value='<? echo $bild_anz ?>'><? echo $bild_anz ?></option>
      <option value='1'>1</option>
      <option value='10'>10</option>
      <option value='15'>15</option>
      <option value='20'>20</option>
<?
for ($i=1; $i<= $bild_anz; $i++)
{
echo $i; 
?>
<input name="<? echo "files[".$i."]"; ?>" type="file" size="60" maxlength="100">
<?
}
?>
Wenn ich jetzt ein Bild hochlade habe ich folgendes im Array $up_files

Code: Select all

 Array ( [name] => Array ( [1] => imag0055.jpg ) [type] => Array ( [1] => ) [tmp_name] => Array ( [1] => ) [error] => Array ( [1] => 2 ) [size] => Array ( [1] => 0 ) ) 
Also scheint er den "name" ja schon korrekt zu bekommen, aber warum "tmp_name"
usw. nicht?

Giffi
arty
Userprojekt
Userprojekt
Posts: 729
Joined: 2002-06-12 10:11

Re: PHP-Upload Problem

Post by arty »

Hi,

gib uns mal die Ausgabe von:

Code: Select all

print "<pre";
print_r($_FILES);
print "</pre>"
bye
arty
giffi
Posts: 140
Joined: 2003-05-17 14:52

Re: PHP-Upload Problem

Post by giffi »

Hi,

Code: Select all



$ _ FILES:Array
(
    [files] => Array
        (
            [name] => Array
                (
                    [1] => imag0008.jpg
                )

            [type] => Array
                (
                    [1] => 
                )

            [tmp_name] => Array
                (
                    [1] => 
                )

            [error] => Array
                (
                    [1] => 2
                )

            [size] => Array
                (
                    [1] => 0
                )

        )

)

Giffi
arty
Userprojekt
Userprojekt
Posts: 729
Joined: 2002-06-12 10:11

Re: PHP-Upload Problem

Post by arty »

error 2 -> http://www.php.net/manual/de/features.f ... errors.php
UPLOAD_ERR_FORM_SIZE

Wert: 2; Die hochgeladene Datei überschreitet die in dem HTML Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße.
Steht alles in der Doku.

bye
arty
giffi
Posts: 140
Joined: 2003-05-17 14:52

Re: PHP-Upload Problem

Post by giffi »

Jo THX habs mittlerweile auch selbst gefunden gehabt und werds mal aisprobieren


Giffi
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen

Re: PHP-Upload Problem

Post by andreask2 »

Hi!

Du hast im Formular angegeben, dass Deine Dateien nur 500 Byte groß sein dürfen, das ist meist etwas klein. Bedenke auch, dass dies auf der anderen Seite kein wirksamer Schutz ist, denn wenn ich das Formular nehme, lokal dieses Feld rausnehme, kann ich auch größere Dateien hochladen.

Steht auch im Manual:
Die maximale Dateigröße MAX_FILE_SIZE ist für den Browser nur ein Hinweis und es ist leicht, diese Grenze zu umgehen. Also verlassen Sie sich nicht darauf, dass der Browser Ihrem Wunsch auch nachkommt! Wie auch immer, die PHP-Einstellungen für die maximale Dateigröße können nicht getäuscht werde
http://www.php.net/manual/de/features.file-upload.php

Daher sollte dieser Wert serverseitig geprüft werden, anhand von

Code: Select all

$_FILES['fieldname']['size']
Grüße
Andreas