Ankündigung

Einklappen
Keine Ankündigung bisher.

IEX führt Unzip script nicht aus.

Einklappen

Neue Werbung 2019

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

  • IEX führt Unzip script nicht aus.

    Hi,

    so sorry das ich den Post so oft ändere, aber manchmal kommt einem beim
    schreiben der Frage schon eine Lösung in den Sinn oder es ergibt sich eine
    konkretere Frage. Die da wäre:

    kann der Internet Explorer

    Code:
    exec("unzip Bilder.zip");
    ausführen??

  • #2
    http://www.cix88.de/cix_php/php_date..._entpacken.php

    Allerdings, wenn die Datein schon entpackt sind, werden sie nicht nochmal entpackt.

    Kommentar


    • #3
      Hallo,
      PHP wird auf dem Server ausgeführt und hat garkeinen Kontakt zum Browser, höchstens an den Übertragungsschnittstellen (die Datei wird fehlerhaft hochgeladen) und an den vom Browser übertragenen Werten die teilweise in den $_SERVER-Array einfließen.

      Dir bleibt nichts andere übrig, als dein PHP-Skript zu debuggen.

      Kommentar


      • #4
        Das Problem ist das ich keinen Fehler finde.

        Im Firefox funktioniert alles ohne probleme.
        Im Opera funktioniert es ebenfalls.

        Im Internet Explorer geht es garnicht!

        Er hört nach

        PHP-Code:
                echo "Zip Datei erfolgreich hochgeladen

        "

        einfach komplett auf.


        Die Produktgruppe wird mittels Form als Zahl übergeben ($tabelle). Also kann kein problem mit dem Namen der Variable bestehen ...


        Code:
        <?
        function send_sql_kurz($sql)
        {
          global $MySQL_Host, $MySQL_User, $MySQL_Passw, $MySQL_DB, $error;
          if (! $res = mysql_db_query($MySQL_DB, $sql))
          {
            echo mysql_error();
            exit;
          }
          return $res;
        }
        
                echo "Zip Datei erfolgreich hochgeladen
        
        ";
        
        if(!empty($file_name)){
          if(@copy($file,"Bilder.zip")){
        
         exec("unzip Bilder.zip");}}
        
        $i=0;
        
        $pfad="./";
        $verz=opendir ($pfad);
        while ($file=readdir($verz))
        {
            if (filetype($pfad.$file)!="dir")
            {
                $i++;
        
                if ($file == 'unzip.php')
                {}
                else if ($file == 'Bilder.zip')
                {}
                else
                {
        copy($file,"../../kurz/Bilder/".$tabelle."/".$file);
        
        echo "$file erfolgreich entpackt und in $tabelle gespeichert
        ";
        
        $Grafikdatei = $file;
        
        $Bilddaten = getimagesize($Grafikdatei);
        
        $OriginalBreite = $Bilddaten[0];
        $OriginalHoehe = $Bilddaten[1];
        $ThumbnailBreite = 85;
        
        if($OriginalBreite < $ThumbnailBreite)
        {
            $ThumbnailBreite=$OriginalBreite;
        }
        
        $Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;
        $ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);
        
        
        if($Bilddaten[2] == 2)
        {
            $Originalgrafik = ImageCreateFromJPEG($Grafikdatei);
            $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
            ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
            ImageJPEG($Thumbnailgrafik, "TN".$Grafikdatei);
        
            copy("TN".$Grafikdatei,"../../kurz/Bilder/".$tabelle."/TN".$Grafikdatei);
        
            echo "$file erfolgreich verkleinert und in $tabelle gespeichert
        ";
        
            $lagernummer = substr($file, 0, -4);
        
        $sql3 = "UPDATE kurz_$tabelle SET activ = '1' WHERE LagNr = '$lagernummer' LIMIT 1";
        $res3 = send_sql_kurz($sql3);
        
        $kleinesbild = "TN".$Grafikdatei;
        
        unlink($kleinesbild);
        unlink($file);
        
        
        }
        
        
                }
                }}
        
        
        
          header("Location:http:../index.php?call=10&subcall=12&Action=1");
        
        ?>

        Das Upload Script:

        PHP-Code:
        echo "<form name=\"form1\" enctype=\"multipart/form-data\" method=\"post\" action=\"kurz_zip/unzip.php\"><select name=\"tabelle\" size=\"\"><option value=\"0\">Bitte auswählen</option>";

        connectkurz();

        $sql33 "select * from kurz_navi where tabelle > 0 order by tabelle DESC";
        $res33 send_sql($sql33);
        $anzahl33=mysql_numrows($res33);
        if (
        $anzahl33)
          {
            for (
        $b=0;$b<$anzahl33;$b++)
            {
            
        $tabelle=mysql_result($res33$btabelle);
            
        $Name=mysql_result($res33$bName);

            echo 
        "<option value=\"$tabelle\" class=\"small\">[b]$Name[/b]</option>";

            }}

        echo
        "</select>";

        echo 
        "


        [b]Wählen Sie nun Ihre ZIP Datei aus:[/b]

        [b]ZIP Datei:[/b]<input type=\"file\" name=\"file\">


        <input type=\"submit\" name=\"Abschicken\" value=\"Datei hochladen\">
        </p>
        </form> 

        Kommentar


        • #5
          1. Dein Skript arbeitet fehlerhaft, warum unterdrückst du dann mögliche Fehler mittels @?
          2. Die meisten PHP-Funktionen haben Rückgabewerte, lass sie dir ausgeben mittels var_dump() -- das war jetzt der letzte Hinweis endlich zu debuggen
          3. Rück deinen Code richtig ein!

          Kommentar


          • #6
            Okay, sorry.

            Hab jetzt die Fehlerquelle lokalisiert.

            Er entpackt definitiv nicht im Internet Explorer.


            Code:
            exec("unzip ".$file);
            oder

            Code:
            exec('unzip -x '.$file.' -d zip/', $var );
            Funktioniert im Firefox + Opera wunderbar, im Internet Explorer garnicht.

            Bei der Zweiten Variante legt er den Unterordner "zip" an, entpackt aber trotzdem nicht.

            Das einfachste wär wenn ich die Zip Extension in der php.ini aktivieren könnte. Dann könnte ich den normalen Zip-Code nutzen.

            Allerdings is das für einen Managend Server bei 1und1, und da komm ich nich an die php.ini ran ... Scheiss IEX ey

            Kommentar


            • #7
              Hallo DDogg,

              Er entpackt definitiv nicht im Internet Explorer.
              Irgendwie glaube ich du hast noch nicht verstanden, dass PHP auf dem SERVER läuft. Debugge mal dein Script dahingehend, als dass du die Shell-Befehle auf der Shell des Servers ausführst. Vielleicht ist ja schon dort ein Bug in der Syntax drin...
              Viele Grüße,
              Dr.E.

              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              1. Think about software design [B]before[/B] you start to write code!
              2. Discuss and review it together with [B]experts[/B]!
              3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
              4. Write [I][B]clean and reusable[/B][/I] software only!
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

              Kommentar


              • #8
                Ich verstehe schon das PHP Serverseitig läuft.

                Aber das ist doch Browserunabhängig?
                Php läuft auch im Firefox und im Opera serverseitig?
                Außerdem "nutzen" Firefox und Opera doch als Basis den IEX oder nicht?

                Was ich nich verstehe ist warum es hier funzt und da nicht?

                Mittlerweile bin ich so weit: Nach dem Upload script kommt foglendes:

                Code:
                move_uploaded_file($_FILES['Datei']['tmp_name'], "./Bilder.zip");
                
                 $zip_name = 'Bilder.zip';
                 exec('unzip -x '.$zip_name.' -d ./', $var );
                Er legt mir jetzt im IEX eine Bilder.zip Datei in den Zielordner ... diese ist aber 0 MB groß, also leer....

                Kommentar


                • #9
                  Prüfe doch erstmal ob dein Upload überhaupt richtig funktioniert.
                  move_uploaded_file liefert true oder false ...

                  Kommentar


                  • #10
                    Hallo Ddogg,

                    Php läuft auch im Firefox und im Opera serverseitig?
                    Du bist echt beratungsresistent. Firefox und Opera sind einfache Browser (=HTTP-CLIENTS) und nichts weiter. PHP läuft auf einem Serverm der zunächst keine Anhnung hat, welche Clients welche Browser installiert haben.


                    Außerdem "nutzen" Firefox und Opera doch als Basis den IEX oder nicht?
                    Das darfst du keinem strenggläubigen Open Source'ler erzählen, der wird dich sonst auf dem open sourcemäßig zertifizierten Scheiterhaufen verbrennen. Die von dir genannten Browser basieren alle auf einer unterschiedlichen Rendering Engine. IE seine eigene, FF Gecko und Opera weiß ich grad nicht.
                    Viele Grüße,
                    Dr.E.

                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    1. Think about software design [B]before[/B] you start to write code!
                    2. Discuss and review it together with [B]experts[/B]!
                    3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
                    4. Write [I][B]clean and reusable[/B][/I] software only!
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                    Kommentar


                    • #11
                      Zitat von CIX88
                      Prüfe doch erstmal ob dein Upload überhaupt richtig funktioniert.
                      move_uploaded_file liefert true oder false ...
                      GiDer Upload scheint zu funktionieren, nur das verschieben in meinen Zielordner wohl nicht ...

                      Kommentar


                      • #12
                        Also wenn das nicht geht, stimmt der Pfad einfach nicht, oder das Upload-File ist beim Server nicht angekommen.

                        Kommentar


                        • #13
                          Zitat von CIX88
                          Also wenn das nicht geht, stimmt der Pfad einfach nicht, oder das Upload-File ist beim Server nicht angekommen.
                          Das kann nicht sein ...

                          Mittlerweile siehts so aus:

                          Es funktioniert, aber nur mit kleinen Dateien ...
                          Wenn die Zip Datei nur eine JPG Datei enthält, dann gehts.
                          Sobald die Zip Datei 2 JPG Dateien oder mehr enthält, gehts nicht ...

                          Hat jemand eine logische Erklärung dafür??

                          Mein Upload Script:


                          PHP-Code:
                              <form action="kurz_zip/unzip.php" method="post" enctype="multipart/form-data">
                              <?
                              echo "<select name=\"tabelle\" size=\"\"><option value=\"0\">Bitte auswählen</option>";

                              connectkurz();

                              $sql33 = "select * from kurz_navi where tabelle > 0 order by tabelle DESC";
                              $res33 = send_sql($sql33);
                              $anzahl33=mysql_numrows($res33);
                              if ($anzahl33)
                                {
                                  for ($b=0;$b<$anzahl33;$b++)
                                  {
                                  $tabelle=mysql_result($res33, $b, tabelle);
                                  $Name=mysql_result($res33, $b, Name);

                                  echo "<option value=\"$tabelle\" class=\"small\">[b]$Name[/b]</option>";

                                  }}

                              echo "</select>";
                              ?>

                                

                          W&auml;hlen Sie eine Zipdatei von Ihrem Rechner aus:

                                <input type="hidden" name="MAX_FILE_SIZE" value="300000000">

                                  <input name="Datei" type="file" size="25">
                                </p>
                                <input type="Submit" name="Hochladen" value="Hochladen">
                              </form>


                          Die unzip Datei:

                          PHP-Code:
                              move_uploaded_file($_FILES['Datei']['tmp_name'], "./Bilder.zip");

                               
                          $zip_name 'Bilder.zip';
                               
                          exec('unzip -x '.$zip_name.' -d ./'$var ); 


                          Wenn ich jetzt eine Datei mit 2 oder mehr JPG´s hochlade legt er mir eine leere Bilder.zip Datei im Zielordner an. 0 MB groß, also leer ...

                          Kommentar


                          • #14
                            Sobald die Zip Datei 2 JPG Dateien oder mehr enthält, gehts nicht ...
                            Ohje langsam nähern wir uns der Ursache
                            Dann wird wohl dein Browser ein Timeout senden, weil der Upload zu lange dauert.
                            Jedenfalls vermute ich das jetzt.

                            Such mal nach jupload, dann brauchste kein ZIP mehr zu machen und kannst dennoch mehrere Bilder uploaden, ohne das etwas abbricht.

                            Kommentar


                            • #15


                              jupload ist ne feine Sache ...

                              Allerdings glaube ich bis ich das implementiert habe,
                              habe ich auch mein Problem gelöst. Es funktioniert ja "eigentlich" ...

                              Das mit dem Timeout glaube ich nicht. Das dauert so circa 2 Sekunden nach dem Submit Button klicken, dann läd er die Ergenisseite und nichts ist passiert ... ausser die **** 0 MB große Bilder.zip

                              Kommentar

                              Lädt...
                              X