Frage zum Tutorial Upload via Formular

ArFiBa

Erfahrenes Mitglied
Hallo,

ich habe eben ein Upload erstellt wie er in diesem Tutorial beschrieben wurde. Er funktioniert aber nur mit *.gif. Jpeg werden nicht hochgeladen. Weder die mit der Endung Jpeg noch jpg.

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

Hab keine Ahnung was da nicht stimmt.
 
Hallo,

kann das sein, dass es an dem liegt:

PHP:
if($type != "image/gif" && $type != "image/pjpeg") {

ich denke mal du solltest du das so schreiben:

PHP:
if($type != "image/gif" && $type != "image/jpeg") {

Gruß Claudia

PS: Bin mir aber nicht ganz sicher, denn mit dem Upload Zeug sollte ich mich auch erst mal noch richtig auseinander setzten :-)
 
Ja, dann gehts bei jpeg. Das ist aber glaub ich nicht die übliche Endung. Wenn ich das selbe nämlich mit jpg versuche, geht das nicht. Hab auch schon mal in der php.inin nachgesehen da ist der Bereich garnicht drin.
 
Das "image/jpeg" ist ja nur der MIME-Typ

Danke das wuste ich nicht. jetzt hab ich noch was anderes:

Das Script funktioniert jetzt. Allerdings nicht wenn die Datei schon vorhanden ist.
Was muss ich ändern, damit eine vorhandene Datei überschrieben wird?
 
Normalerweise überschreibt copy() doch vorhandene Dateien?

Naja, mit file_exists() kannst du überprüfen, ob die Datei bereits existiert, und wenn dem so ist, kannst du sie ja mit unlink() löschen.
 
Zuletzt bearbeitet:
Hab das jetzt so eingebaut, aber es kommt ein Fehler:
Parse error: parse error, expecting `')'' in upload.php on line 12

line 12 ist hier die erste Zeile.

PHP:
if(file_exists(./user_images/$name))
	unlink( ./user_images/$name);
elseif(empty($err)) {
    copy("$tempname", "./user_images/$name");
    echo "Die Datei wurde erfolgreich hochgeladen!";
 
PHP:
if(file_exists("./user_images/".$name))
    unlink("./user_images/".$name);
elseif(empty($err)) {
    copy($tempname, "./user_images/".$name);
    echo "Die Datei wurde erfolgreich hochgeladen!";
Du hast die Anführungszeichen vergessen ;)
 
Stimmt! Hab mal wieder auf'm Schlauch gestanden.

Allerdings sagt er mir jetzt Permission denied allerdings habe ich dem Ordner alle rechte gegeben.
 
Zurück