move_uploaded_file() - brauche hilfe

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

  • move_uploaded_file() - brauche hilfe

    Hallo zusammen,
    habe folgendes script, welches aufgrund dämlicher sicherheitsvorkehrungen bei meinem t-com host nicht läuft. Nun sagt mir ein freundlicher systemadmin von t-com, ich müsste mit dem befehl move_uploaded_file() arbeiten, da mein copy befehl nicht unterstützt wird. dann würde es klappen. ich hab aber null ahnung wie ich die funktion anwenden muss. vielleicht kann mir einer helfen. hier mein script:

    PHP-Code:

    <?php
    error_reporting
    (E_ALL);


    // file: upload.php

    $id $_POST['id'];

    $bild1 $id."-1.jpg";
    $target1 "bilder/$bild1";

    $bild2 $id."-2.jpg";
    $target2 "bilder/$bild2";

    $bild3 $id."-3.jpg";
    $target3 "bilder/$bild3";

    $bild4 $id."-4.jpg";
    $target4 "bilder/$bild4";

    $bildtn $id."-tn.jpg";
    $targettn "thumbnails/$bildtn";

    function 
    upload$source$target$size 200 )
    {
       
    // ordentliches fehlerhandling noch implementieren
       
    if( !is_array$source ) || !isset( $source['tmp_name'] ) ) return false;

       
    $img_src       ImageCreateFromjpeg $source['tmp_name']  );
       
    $true_width   imagesx$img_src );
       
    $true_height imagesy$img_src );

       if ( 
    $true_width >= $true_height )
       {
           
    $width   $size;
           
    $height ceil$width $true_width $true_height );
       }
       else
       {
          
    $height $size;
          
    $width   ceil$height $true_height $true_width );
       }

       
    $img_des imagecreatetruecolor$width$height );
       
    imagecopyresampled $img_des$img_src0000$width$height$true_width$true_height );
       
    imagejpeg$img_des$target );
       
    imagedestroy $img_src );
       
    imagedestroy $img_des );

       return 
    true;
    }

    if( isset( 
    $_POST['doupload'] ) )
    {

       if( 
    $_FILES['img1']['error'] == )
       {
          if( 
    upload$_FILES['img1'], "$target1) == true )
          {
             echo 
    "Bild 1 hochgeladen!<br>";
          }
          else
          {
             echo 
    "Bild 1 nicht hochgeladen!<br>";
          }
       }
       else
       {
          echo 
    "Bild 1 wurde nicht ausgewählt<br>";
       }


       if( 
    $_FILES['img2']['error'] == )
       {
          if( 
    upload$_FILES['img2'], "$target2) == true )
          {
             echo 
    "Bild 2 hochgeladen!<br>";
          }
          else
          {
             echo 
    "Bild 2 nicht hochgeladen!<br>";
          }
       }
       else
       {
          echo 
    "Bild 2 wurde nicht ausgewählt<br>";
       }


       if( 
    $_FILES['img3']['error'] == )
       {
          if( 
    upload$_FILES['img3'], "$target3) == true )
          {
             echo 
    "Bild 3 hochgeladen!<br>";
          }
          else
          {
             echo 
    "Bild 3 nicht hochgeladen!<br>";
          }
       }
       else
       {
          echo 
    "Bild 3 wurde nicht ausgewählt<br>";
       }


       if( 
    $_FILES['img4']['error'] == )
       {
          if( 
    upload$_FILES['img4'], "$target4) == true )
          {
             echo 
    "Bild 4 hochgeladen!<br>";
          }
          else
          {
             echo 
    "Bild 4 nicht hochgeladen!<br>";
          }
       }
       else
       {
          echo 
    "Bild 4 wurde nicht ausgewählt<br>";
       }


       if( 
    $_FILES['img1']['error'] == )
       {
          if( 
    upload$_FILES['img1'], "$targettn) == true )
          {
             echo 
    "Thumbnail erfolgreich generiert!<br>";
          }
          else
          {
             echo 
    "Thumbnail nicht generiert!<br>";
          }
       }
       else
       {
          echo 
    "Thumbnail wurde nicht ausgewählt<br>";
       }

    }
    ?>

  • #2
    in deinem skript kommt aber kein copy() vor - du speicherst mittels gd-lib. wo ist das problem?

    Kommentar


    • #3
      das ist ja das was mein problem ist. der admin von t-com meint ich müsste aber mit move_uploaded_file() arbeiten und mein wortwörtlicher "copy-befehl" würde nicht unterstützt.

      Kommentar


      • #4
        hast du denn getestet, ob imagejpeg() grundsätzlich ein richtiges bild produziert?

        Kommentar


        • #5
          ja tut es. das script funktioniert komplett fehlerfrei auf unix. nur auf dem scheiss win server von t-com eben nicht.

          Kommentar


          • #6
            du sollst zum einen auf deine wortwahl achten, zum anderen interessiert einen die testausgabe von imagejpeg() auf dem server, auf dem das abspeichern probleme bereitet.

            Kommentar


            • #7
              aha. verstehe. nehme dann das böse wort zurück ;-)
              folgende fehlermelungen werden auf dem T-Com Server ausgespuckt:


              Warning: imagecreatefromjpeg(): Unable to access C:\WINDOWS\TEMP\php9CC.tmp in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 30

              Warning: imagecreatefromjpeg(C:\WINDOWS\TEMP\php9CC.tmp): failed to open stream: No such file or directory in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 30

              Warning: imagesx(): supplied argument is not a valid Image resource in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 31

              Warning: imagesy(): supplied argument is not a valid Image resource in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 32

              Warning: Division by zero in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 37

              Warning: imagecreatetruecolor(): Invalid image dimensions in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 45

              Warning: imagecopyresampled(): supplied argument is not a valid Image resource in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 46

              Warning: imagejpeg(): supplied argument is not a valid Image resource in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 47

              Warning: imagedestroy(): supplied argument is not a valid Image resource in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 48

              Warning: imagedestroy(): supplied argument is not a valid Image resource in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 49
              Bild 1 hochgeladen!
              Bild 2 wurde nicht ausgewählt
              Bild 3 wurde nicht ausgewählt
              Bild 4 wurde nicht ausgewählt

              Warning: imagecreatefromjpeg(): Unable to access C:\WINDOWS\TEMP\php9CC.tmp in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 30

              Warning: imagecreatefromjpeg(C:\WINDOWS\TEMP\php9CC.tmp): failed to open stream: No such file or directory in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 30

              Warning: imagesx(): supplied argument is not a valid Image resource in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 31

              Warning: imagesy(): supplied argument is not a valid Image resource in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 32

              Warning: Division by zero in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 37

              Warning: imagecreatetruecolor(): Invalid image dimensions in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 45

              Warning: imagecopyresampled(): supplied argument is not a valid Image resource in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 46

              Warning: imagejpeg(): supplied argument is not a valid Image resource in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 47

              Warning: imagedestroy(): supplied argument is not a valid Image resource in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 48

              Warning: imagedestroy(): supplied argument is not a valid Image resource in \\fe-dm01a-91.wdhs.local\WS001_000\pool66\6WS65H61KS5Y\WEB\content\test\upload.php on line 49
              Thumbnail erfolgreich generiert!

              Kommentar


              • #8
                ok,
                Unable to access C:\WINDOWS\TEMP\php9CC.tmp
                deutet darauf hin, dass imagecreatefromjpeg nicht mit einer datei aus $_FILES arbeiten kann. speichere sie erst mal mit http://de.php.net/manual/en/function...oaded-file.php in _deinen_ temp-ordner und übergebe den pfad an deine funktion upload().

                Kommentar

                Lädt...
                X