Upload Script

elPadre

Mitglied
Hallo Jungs,

Mein Problem bei diesem Script liegt darin das ich als ausgabe immer:

nur gif und jpeg Dateien dürfen hochgeladen werden.

obwohl ich 100% ein .gif datei ausgewehlt habe und ich komm nicht drauf warum dass nicht funktioniert.

Danke für eure Hilfe anbei der CODE

PHP:
<?php 
$tempname = $_FILES['test']['tmp_name']; 
$name = $_FILES['test']['name']; 
$type = $_FILES['test']['type']; 
$size = $_FILES['test']['size']; 
if($type != "image/gif" && $type != "image/pjpeg") { 
    $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden."; 
} 
if($size > "25000") { 
    $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 25 KB!"; 
} 
if(empty($err)) { 
    copy("$tempname", "file/$name"); 
    echo "Die Datei $name wurde erfolgreich hochgeladen!"; 
} 
else { 
    foreach($err as $error) 
    echo "$error<br>"; 
} 
?>
 
Äh. Nein. So nicht. Wir können höchstens Raten, was dein Problem ist, da du dich zu keiner genaueren Fehlerbeschreibung hinablässt. Wie wäre es, wenn du dein Problem neu formulierst und mir eine korrigierte Fassung deines Posts zukommen lässt. Dann mache ich den Thread gerne wieder auf.

Nachtrag: So ist es besser. :)
 
Ich tippe spontan auf diese Zeile hier in deinen Quellcode

Code:
if($type != 'image/gif' && $type != 'image/pjpeg')

Mal kurz rausgelöscht irgendwie komm ich nicht hinter das Problem , wenn eine Bedingung nicht erfüllt wird ist ja alles falsch , somit müsste er die erste if anweisung übergehen. Das kann nur sein das er das image/gif nicht so erkennt :/

Also ein Fehler seh ich dort nun nicht , auch nach eigenen Tests nochmal nix zu sehen mhm hast du eventuell beim Upload Form was falsches eingetragen ? Weil normal sollte das bei einen gif Bild alles stimmen oder aber es war kein gif bild gewesen *G* Ansonsten könnte ich mir das nun nicht erklären.
 
Zuletzt bearbeitet:
Hallo,
also ich habe das Script gerade getestet und bei mir hat es einwandfrei funktioniert.
Hast du auch darauf geachtet, dass dein Forumular ungefähr so aufgebaut ist?
Code:
<form method="POST" enctype="multipart/form-data" action="">
 <p><input type="file" name="test" size="20">
 <input type="submit" value="Absenden" name="Absenden"></p>
</form>

mfg
forsterm
 
PHP:
	if(empty($err)) {
            $dir = "./profile/profil".$user_id;
		mkdir($dir,0777);
		//copy("$tempname", "uploads/$name");
            //$dir2 = "./profile/profil".$user_id."/".$name;
            copy("$tempname", "./profile/profil".$user_id."/".$name);
		echo "Die Datei $name wurde erfolgreich hochgeladen!<br><br>";


Eins der HAUPTPROBLEME ist das ich das wie man im Script sieht Verzeichniss mit 777 erstelle jedoch wernn ich im FTP kucke hat es nur 755 !? wie kann das sein -?

Der Upload Funktioniert.

Jedoch wie ihr sehen könnt erstelle ich erstmal ein Verzeichniss in dieses Verzeichniss möchte ich dann das Bild mit copy verschieben.

bekomme dann aber diese Fehlerausgabe:

Warning: mkdir(./profile/profil2): File exists in /srv/www/htdocs/web10/html/portal/templates/profil_update.php on line 22

Warning: copy(): SAFE MODE Restriction in effect. The script whose uid is 647 is not allowed to access /srv/www/htdocs/web10/html/portal/profile/profil2 owned by uid 30 in /srv/www/htdocs/web10/html/portal/templates/profil_update.php on line 25

Warning: copy(./profile/profil2/bi_karte.gif): failed to open stream: No such file or directory in /srv/www/htdocs/web10/html/portal/templates/profil_update.php on line 25
Die Datei bi_karte.gif wurde erfolgreich hochgeladen!
 
Zuletzt bearbeitet:
LÖsung

Hallo Jungs,

habe es geschafft möchte euch ja die Lösung nicht vorenthalten:

PHP:
<?
function ftp_safe_mode_mkdir( $path , $newDir, $chmod) {

       $host = "xxxxxxx";
       $username = "xxxxxxx";
       $password = "xxxxxxx";
     ## Verbindung zum FTP Server aufbauen
     $ftp_conn = ftp_connect($host);

     ## Einloggen
     $ftp_login_result = ftp_login($ftp_conn, $username, $password);

     ## Fehler
     if ((!$ftp_conn) || (!$ftp_login_result)) {
          return false;
          exit();

     ## Erfolg
     } else {

          ## Verzeichnis wechseln
          ftp_chdir($ftp_conn,$path);

          ## Verzeichnis ersellen
          if(ftp_mkdir($ftp_conn,$newDir)) {

               ## Ordnerrechte ändern
               ftp_site($ftp_conn, "CHMOD ".$chmod." ".$newDir);
               return $newDir;

          } else {

               return false;
          }
     }

     ## Verbindung vom FTP Server trennen
     ftp_close($ftp_conn);
}
?>
<?php
	$tempname = $_FILES['file']['tmp_name'];
	$name = $_FILES['file']['name'];

	$type = $_FILES['file']['type'];
	$size = $_FILES['file']['size'];

	if($type != "image/gif" && $type != "image/jpeg") {
		$err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
	}
	if($size > "60000000") {
		$err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 60 MB!";
	}

	if(empty($err)) {
	      $dir = "profil".$user_id;
	      if(is_dir($dir))
	      {
	      echo"";
	      }
	      else{
	      ftp_safe_mode_mkdir("html/portal/profile/",$dir,"777");
	      }
            copy("$tempname", "./profile/profil".$user_id."/".$name);
		//copy("$tempname", "./profile/testftp/".$name);
		echo "Die Datei $name wurde erfolgreich hochgeladen!<br><br>";
      	mysql_select_db($dsn);
	      $SQL="UPDATE benutzerdaten SET profil_bild='$name' WHERE id=$user_id";
	      mysql_query("$SQL");
	}
	else {
		foreach($err as $error)
		echo "$error<br>";
	}
?>
 
Zurück