upload problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • upload problem

    hi, ich habe folgendes script programmiert:

    PHP-Code:
    <?php

            
    if($action == "del")

            {

                    
    mysql_query("UPDATE as_members SET ppic = '0' WHERE id = '".$_SESSION["ID"]."'");
                    
    unlink("gfx/ppics/".$_SESSION["ID"].".gif");
                    
    $_SESSION["PPIC"] = 0;

            }



            if(
    $action == "upload")

        {
            
    $UPLOAD "/home/www/web124/html/unibuxx/gfx/ppics/".$_SESSION["ID"].".jpg";

            if(
    file_exists($UPLOAD))

                @
    unlink($UPLOAD);

            if(
    $_FILES['FILE']['type'] != "image/jpeg"

                
    AND $_FILES['FILE']['type'] != "image/pjpeg"

                
    AND $_FILES['FILE']['type'] != "image/x-png"

                
    AND $_FILES['FILE']['type'] != "image/gif")

                
    $INFO_MSG "Öhm... Das Vorschaubild-Format ist Asbach-Uralt, oder wie?! *g";

            else

            {
                
    $SIZE GetImageSize($_FILES['FILE']['tmp_name']);

                if(
    $_FILES['FILE']['type'] == "image/jpeg" OR $_FILES['FILE']['type'] == "image/pjpeg")

                    
    $IMAGE = @ImageCreateFromJPEG($_FILES['FILE']['tmp_name']);

                else if(
    $_FILES['FILE']['type'] == "image/x-png")

                    
    $IMAGE = @ImageCreateFromPNG($_FILES['FILE']['tmp_name']);

                else if(
    $_FILES['FILE']['type'] == "image/gif")

                    
    $IMAGE = @ImageCreateFromGIF($_FILES['FILE']['tmp_name']);

                if(
    $SIZE[0] >= $SIZE[1] AND $SIZE[0] >= 100)

                {

                    
    $SAVE_X 100;

                    
    $SAVE_Y = ($SIZE[1]*$SAVE_X)/$SIZE[0];

                }

                else if(
    $SIZE[1] >= $SIZE[0] AND $SIZE[1] >= 100)

                {

                    
    $SAVE_Y 100;

                    
    $SAVE_X = ($SIZE[0]*$SAVE_Y)/$SIZE[1];

                }

                else

                {

                    
    $SAVE_X $SIZE[0];

                    
    $SAVE_Y $SIZE[1];

                }

                
    mysql_query("UPDATE as_members SET ppic = '1' WHERE id = '".$_SESSION["ID"]."'");

                
    $SAVE_IMAGE = @imagecreatetruecolor($SAVE_X,  $SAVE_Y);

                @
    imagecopyresized($SAVE_IMAGE$IMAGE0000$SAVE_X$SAVE_Y$SIZE[0], $SIZE[1]);

                
    imagejpeg($SAVE_IMAGE,  $UPLOAD100);

                
    $_SESSION["PPIC"] = 1;

                
    $INFO_MSG "Ein Profilbild wurde hochgeladen.";
            }

           echo 
    $INFO_MSG;

        }



            if(
    $_SESSION["PPIC"] == 0$IMAGE "keinbild.gif";

            else 
    $IMAGE $_SESSION["ID"].".jpg";

    ?>

    <h1><?php echo $CONTENT_TITLE?></h1>

    <div style="border: #F4900D 1px dashed; text-align:center;background-color: #FAE1C0;  padding:10px; margin:2px;">
    Dein aktuelles Profilbild:<br /><br />
    <img alt="Profilbild von <?php echo $_SESSION["NICK"]; ?>" src="gfx/ppics/<?php echo $IMAGE?>" /><br /><br />

    <?php if($_SESSION["PPIC"] != "0") { ?>

    <form method="post" name="loeschen" action="?seite=profilbild&amp;action=del">
    <a style="font-size:10px;" href="javascript:document.loeschen.submit();">Bild löschen!</a>

    </form>

    <?php ?>

    </div>


    <br/>


    <?php if($_SESSION["PPIC"] == "0") { ?>

    <div class="tab3"><p>Neues Profilbild hochladen:</p></div>
    <br/>

    <form method="post" name="up" action="?seite=profilbild&amp;action=upload" enctype="multipart/form-data">

    <label  class="left" for="FILE">Pfad angeben:</label>
    <input class="style_input"  id="FILE" name="FILE" type="file" />
    <br/><br/>

    <div style="border: #F4900D 1px dashed; text-align:right;">
    <a style="font-size:10px;" href="javascript:document.up.submit();">Hochladen</a>
    </div>
    </form>

    <?php ?>

    Nun gibts mir folgende meldung aus:

    Warning: imagejpeg(): Unable to access /home/www/web124/html/unibuxx/gfx/ppics/9.jpg in /home/www/web124/html/unibuxx/profilbild.php on line 87

    Warning: imagejpeg(): Invalid filename '/home/www/web124/html/unibuxx/gfx/ppics/9.jpg' in /home/www/web124/html/unibuxx/profilbild.php on line 87


    die rechte stimmen und der uploadpfad auch.....

  • #2
    Invalid filename
    Fragen???

    Kommentar


    • #3
      kannst du mir das ein wenig genauer erklären?

      Kommentar


      • #4
        ungültiger dateiname
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          .....und welche gründe kann das haben?

          Kommentar


          • #6
            ganz einfach, dass der dateiname ungültig ist.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              in der gleichen Zeile hast janoch den Fehler "Unable to access", was so viel bedeutet wie "kann nicht darauf zugreifen".

              Also entweder ist die Datei nicht vorhanden oder sie schreibt sich anders oder was anderes in der Richtung.

              Du könntest Dir natürlich mal vor dem Zugriff auf die Datei den kompletten Text (Pfad) welchen Du übergibst ausgeben lassen - vielleicht ist ja irgendwo ein Leerzeichen das da nicht hingehört.

              Kommentar


              • #8
                Vielleicht erstmal aufhören, mit @ an den wichtigsten Stellen eventuelle Fehlermeldungen zu unterdrücken?

                Das beseitigt den o.g. Fehler nicht, denn der liegt so wie ich das sehe an fehlenden Schreibrechten, aber wenn du selbst nicht weißt, woher ein Fehler rührt, dann ist der erste Schritt alle @ wegnehmen und gleich danach das Error-Reporting hochdrehen
                Zuletzt geändert von onemorenerd; 19.02.2006, 12:01.

                Kommentar


                • #9
                  Warning: imagejpeg(): Unable to access /var/www/user/html/test/image.jpg in /var/www/user/html/test/image.php on line 19

                  Warning: imagejpeg(): Invalid filename '/var/www/user2/html/test/image.jpg' in /var/www/user2/html/test/image.php on line 19


                  such auch gerade den Fehler,hab 2 Server mit gleichen Einstellungen
                  gleiche GD

                  nur unterschiedliches php
                  user1 hat PHP Version 4.3.10
                  user2 hat PHP Version 4.4.1-pl1-gentoo
                  chmod verzeichnis steht auf 777

                  bei Verson 4.4 geht es nicht.
                  hier mal ein Beispiel
                  PHP-Code:
                  <?PHP
                  //error_reporting(E_ALL);
                  $image imagecreate(300,150);
                  $farbe_body=imagecolorallocate($image,243,243,243);
                  //header("Content-Type: image/jpeg");

                  if ($_SERVER["SERVER_NAME"] == "www.user.de"){
                      
                  $abpath $_SERVER["DOCUMENT_ROOT"];
                      
                  $abpath $abpath."/test/";
                  }
                  if (
                  $_SERVER["SERVER_NAME"] == "www.user2.de"){
                      
                  $abpath $_SERVER["DOCUMENT_ROOT"];
                      
                  $abpath $abpath."/test/";
                  }
                  //    /var/www/user/html/    absoluter Path
                      
                  imagejpeg($image,$abpath."image.jpg");
                      
                  //imagejpeg($image,"image.jpg");        //funktioniert
                  ?>
                  Bitte um Hilfe
                  Grüße MultiX

                  Kommentar


                  • #10
                    pfade und dateinamen überprüft?

                    Kommentar


                    • #11
                      Original geschrieben von TobiaZ
                      pfade und dateinamen überprüft?
                      ja klar stimmen alle

                      das Bild resultiert ja aus $image

                      imagejpeg($image,$abpath."image.jpg",100);
                      so gehts auch nur auf dem einen server

                      Kommentar


                      • #12
                        freu hab den Fehler
                        hier mal die Lösung

                        touch($abpath."image.jpg"); //Datei erzeugen
                        imagejpeg(....):

                        danke MultiX

                        Kommentar

                        Lädt...
                        X