Upload

o.k. ... poste mal Deinen gesamten Quellcode .... und sag wo das Bild hochgeladen werden soll ....

Das bekommen wir hin!

by the way:

das hier in Deinem code ist falsch:

PHP:
move_uploaded_file("$tempname", $uploaddir.$name);

Die Variable $tempname darf nicht in " " Zeichen stehen:

PHP:
move_uploaded_file($tempname, $uploaddir.$name);

Gruzz
 
Zuletzt bearbeitet:
also ich habe jetzt 2 Versionen, die eine hab ich selbst gemacht, die andere wurde hier mal gepostet.

1. Variante (selbst gemacht)

PHP:
<?php
 $tempname = $_FILES['file']['tmp_name'];
 $name = $_FILES['file']['name'];
 $type = $_FILES['file']['type'];
 $size = $_FILES['file']['size'];
 $uploaddir = '.../images';
 if($type != "image/gif" || $type != "image/jpeg" || $type != "image/pjpeg")
         {
        $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
        }
 if($size > "1000000")
         {
        $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!";
         }
 if(empty($err[]))
         {
        move_uploaded_file("$tempname", $uploaddir.$name);
        echo "Die Datei $name wurde erfolgreich hochgeladen!";
         }
 else
         {
        foreach($err as $error)
        echo "$error<br>";
         }
?>

Die gepostete Version sieht so aus:

PHP:
<?php
$tempname = $_FILES['bild']['tmp_name'];
     $name = $_FILES['bild']['name'];
     $type = $_FILES['bild']['type'];
     $size = $_FILES['bild']['size'];
     $uploaddir = 'images/';

if($type != "image/gif" && $type != "image/pjpeg" && $type != "image/jpg")
    {
         $error_string .= "\n - Bild ".$i." ist nicht im Format jpg oder gif.<br>";
    }
               elseif ($size > "100000")
    {
        $error_string .= "\n - das Bild ".$name." ist zu gross!<br>Maximale Dateigrosse beträgt 100 KB!<br>";
    }
                else
    {
        move_uploaded_file($tempname, $uploaddir . $name);
        $bildurl = $uploaddir.$name;
    }
?>


Die Datei upload.php liegt im Ordner C:\x und die Bilder sollen nach C:\x\images.

danke für eure Mühe
gruss
 
das untere, gepostete script ist von der syntax her völlig o.k. In Deinem selbstgemachten ist wie gesagt ein Fehler (siehe mein vorheriges Post).

Du willst das ganze auf C: ausführen. Nun, ich weiss nich ganz genau wie das geht mit Schreibrechten und Pfadangabe. Ich tippe aber mal, dass da der Fehler liegt. Kannst Du denn überhaupt auf C: zugreifen. Ist das dein "localhost" ? Wenn ja würde ich mal den tatsächlichen Pfad angeben ...

Wie gesagt, was speichern auf dem lokalen Rechner auf C: angeht weiss ich nicht so genau Bescheid. Vielleicht jemand anderer?

Gruss
 
ja das ist mein Localhost! Also d.h. C:\x wäre sozusagen mein Localhost.
Habe mal den Fehler korrigiert, funktioniert aber immer noch nicht.

gruss
 
[phpf]move_uploaded_file[/phpf] gibt im Erfolgsfall TRUE, beim scheitern FALSE zurück. Das könnte man evtl. mal abfangen und gucken, was PHP sich denn so denkt. Außerdem könntest du mal in die Zeile 1 deines Scripts
PHP:
error_reporting(E_ALL);
packen. Das spuckt dir dann nämlich sämtliche Warnungen, Hinweise und Fehler aus, die in deinem Code drin sind.
 
Was gibt denn
PHP:
<?php echo $_SERVER['DOCUMENT_ROOT']; ?>
aus?

Vielleicht hilft folgende Pfadangabe:

PHP:
<?php 
$uploaddir = $_SERVER['DOCUMENT_ROOT'].'/images/'; 
?>
 
Das hier ist doch Käse:
PHP:
uploaddir = '.../images';
Es wurde Dir doch bereits gesagt, dass Du das in folgendes ändern sollst:
PHP:
uploaddir = 'images/';
snuu
 
nein!

PHP:
echo $_SERVER['DOCUMENT_ROOT'];

bringt keine Ausgabe.
Mit
PHP:
error_reporting(E_ALL);
erreiche ich auch nichts.

Und das Verzeichnis hab ich jetzt auch noch geändert. Funktioniert auch nicht. F***.

gruss
 
So, hier ist mal ein Code der klappt.

Habe ein Mini Formular da reingebaut, damit ich es testen kann.
Als Kommentar hab ich eingefügt, wo der Uploadorder sich im Dateisystem von Windows sich befindet.

Also, bau es auf deinen Pfad mal um, und teste das alleine.

PHP:
<?php 
if($_POST[ButtonKlick])
{
	 $tempname = $_FILES['bild']['tmp_name']; 
     $name = $_FILES['bild']['name']; 
     $type = $_FILES['bild']['type']; 
     $size = $_FILES['bild']['size']; 
     $uploaddir = $_SERVER['DOCUMENT_ROOT'].'/simpletest/images/';  // Systempfad: C:/Webserver/htdocs/simpletest/images/
	 
if($type != "image/gif" && $type != "image/pjpeg" && $type != "image/jpeg") 
    { 
         $error_string .= "\n - Bild ".$i." ist nicht im Format jpg oder gif.<br>"; 
    } 
elseif ($size > 100000) 
    { 
        $error_string .= "\n - das Bild ".$name." ist zu gross!<br>Maximale Dateigrosse beträgt 100 KB!<br>"; 
    } 
else 
    { 
        move_uploaded_file($tempname, $uploaddir . $name); 
        $bildurl = $uploaddir.$name; 
    } 
}
echo $error_string."<br>";
echo "
	<form method=\"POST\" enctype=\"multipart/form-data\" action=\"$PHP_SELF\">
		<p><input type=\"file\" name=\"bild\" size=\"20\"></p>
		<p><input type=\"submit\" value=\"Absenden\" name=\"ButtonKlick\"></p>
	</form>";
?>

Achja, ich hab noch folgendes geändert:
- von elseif ($size > "100000") ->> elseif ($size > 100000)
- von $type != "image/jpg" ->> $type != "image/jpeg"

MfG
Andreas

// Edit: Ich sollte erwähnen, das es bei mir
 
ach verdammt...der Upload funktioniert immer noch nicht! Weiss jemand was noch falsch sein könnte?
gruss
 

Neue Beiträge

Zurück