Peter: hilfe!! bild uploaden mit php auf IIS

Hi leute....

Ich hab ein phpscript zum Bilduploaden .. Funktioniert auf UnixServer.. aber jetzt muß es leider ein WinNT IIS sein... kann keine Datei erstellen.. Nachdem ich auch kein CHKMOD setzen kann ... was soll ich tun?? Funktioniert das überhaupt?

Fehlermeldung: Warning: Unable to create '../big//1031821684.jpg': Permission denied in \admin\ext\bilder.php on line 43
Fehler beim Uploaden des groáen Bildes.

lg Peter

  1. Hallo,

    hast du einen PHP-Interpreter installiert?

    IIS steht ja für asp...

    bei deinem pfad steht da ein doppelter //... das geht sowieso nicht...
    zur besseren analyse eventuell den quellcode mitliefern... meine kristallkugel ist noch nicht online...

    außerdem muss der augenblickliche user die entsprechenden rechte besitzen dateien anzulegen... ohne authentifizierung ist dies normalerweise der I_USR

    Odium

    1. Hallo,

      hast du einen PHP-Interpreter installiert?

      Ist nicht mein Server .. muß diesen gewzungenermaßen nehmen.. ist ein kommerzieller server..php ist drauf

      IIS steht ja für asp...

      zur besseren analyse eventuell den quellcode mitliefern... meine kristallkugel ist noch nicht online...

      stark vereinfacht.. hab alles rausgenommen... was nichts mit dem problem zutun hat .. also net auf die optik schaun
      <?
          function getFileExtension($str) {

      $i = strrpos($str,".");
              if (!$i) { return ""; }

      $l = strlen($str) - $i;
              $ext = substr($str,$i+1,$l);

      return $ext;

      }

      if(isset($be)){
      $k = time();
      $er = ".jpg";
          $kuploaddir = "../small/";
          $uploaddir = "../big";
          $pext = getFileExtension($imgfile_name);
          $pext = strtolower($pext);
          if (($pext != "jpg")  && ($pext != "jpeg")){
              print "<h1>Fehler</h1>Bild Erweiterung Unbekannt<br>";
              print "<p>Bitte nur Bilder mit .jpg oder .jpeg  Kompression uploaden<br><br>";
              print "Das Bild das sie upgeloadet haben, hatte folgende Kompression $pext</p>\n";
              unlink($imgfile);
              exit();
          }
          $imgsize = GetImageSize($imgfile);
          if (($imgsize[0] > 250) || ($imgsize[1] > 200)){
              $tmpimg1 = tempnam("/tmp", "MKUP");
              system("djpeg $imgfile >$tmpimg1");
              system("pnmscale -xy 400 300 $tmpimg1 | cjpeg -smoo 10 -qual 60 >$imgfile");
              unlink($tmpimg1);
          }

      $final_filename = str_replace(" ", "_", $imgfile_name);
          $newfile = $uploaddir . "/$k$er";

      if (!copy($imgfile,"$newfile")){
              print "Fehler beim Uploaden des Bildes.";
              exit();

      }
      }
      ?>

      <h2>Bild für Objekt einfügen</H2>

      <form action="bilder.php" method="POST" enctype="multipart/form-data">
          <input type="hidden" name="MAX_FILE_SIZE" value="1024000">
        <input type=hidden name=id <?php print"value=$id";?>>
          <input type=hidden name=be value=set>
          <p>Upload Image: <input type="file" name="imgfile"><br>
          <font size="1">Click browse to upload a local file</font><br>
          <br>
          <input type="submit" value="Bild Uploaden"></td>
          </form>

      außerdem muss der augenblickliche user die entsprechenden rechte besitzen dateien anzulegen... ohne authentifizierung ist dies normalerweise der I_USR

      kann ich mir selbst rechte zum verzeichnissschreiben mittels php oder sonstwas geben oder nur der webmaster.. kenn mich mit WinDosen nicht so aus..
      Peter

      1. hi

        $kuploaddir = "../small/";
            $uploaddir = "../big";

        solche Pfade dürften am save-mode von PHP scheitern.

        Grüße aus Bleckede

        Kai

        1. hi

          $kuploaddir = "../small/";
              $uploaddir = "../big";

          solche Pfade dürften am save-mode von PHP scheitern.

          und wie war das noch gleich mit Windows-Pfaden("")?

          Grüße
          Andreas

          1. Moin!

            $kuploaddir = "../small/";
                $uploaddir = "../big";
            solche Pfade dürften am save-mode von PHP scheitern.
            und wie war das noch gleich mit Windows-Pfaden("")?

            Das würde ich nicht als Problem sehen, PHP setzt die / in \ um, wenn es an einen Dateizugriff geht. Außerdem macht es das Leben leichter, denn "" ist der Escape-Character, du müsstest also, um einen "" in den String zu bekommen, "\" schreiben - mehr als umständlich, und sehr fehlerträchtig. Außerdem nicht OS-kompatibel.

            - Sven Rautenberg