Ankündigung

Einklappen
Keine Ankündigung bisher.

vorhandene Bilder am Server nicht überschreiben

Einklappen

Neue Werbung 2019

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

  • vorhandene Bilder am Server nicht überschreiben

    Hallo Leute!
    Zurzeit macht mein Code folgendes! Erholt sich die Bilder vom Server und Speichert sie lokal ab. Wenn ich das Script aber nochmals ausführe werden die
    Bilder überschrieben. Dies soll nicht passieren. Er soll die Bilder dann nicht mehr
    runterladen wenn es Sie schon gibt.

    Mein Code:

    PHP-Code:
    function getPicFromServer ($rServerPath$lServerPath) {

                
    $rServer['path'] = $rServerPath;
                
    $lServer['path'] = $lServerPath;
                
    $rServer['picDir'] = str_replace('pictures.php'''$rServer['path']);
                
    $rServer['source'] = file_get_contents($rServer['path']);
                
    $rServer['picUrls'] = explode("<br />"$rServer['source']);

        

      for (
    $i 0$i count($rServer['picUrls'])-1$i++) {

           echo 
    $rServer['picDir'].$rServer['picUrls'][$i].'<br>';
           
    copy($rServer['picDir'].$rServer['picUrls'][$i], $lServerPath.$rServer['picUrls'][$i]);

       }


    bitte um Hilfe


  • #2
    Ich würde einfach vorher überprüfen, ob es die Datei gibt. Zb mit file_exists()

    PHP: copy - Manual

    PHP: file_exists - Manual

    Kommentar


    • #3
      und wie kann ich sagen z.B

      wenn Bilder geladen wurden, lösche die bilder am server!

      Kommentar


      • #4
        mach doch eine if else abfrage.

        Kommentar


        • #5
          php.net - unlink
          ACHTUNG!!! SIGNATUR!!!
          PHP-Code:
          var_dump($gehirn); exit; 
          0 ??? WTF ? nervtag.de | freutag.net | friendmetr.com

          Kommentar


          • #6
            Indem du deinen Mund aufmachst und es aussprichst ...

            Was meinst du damit? WO willst du die Bilder löschen, auf welchem Server?

            Auf dem Server woher du die Bilder runterlädst? Kannst du auf diesen Zugreifen? Per FTP oder ähnlichem?

            Kommentar


            • #7
              Hab jetzt ein Problem durch das unlink, er unterstütz "http" nicht meine Url stellt sich so zusammen:

              PHP-Code:
               $url "http://".$deviceInfo['IP'].":".$deviceInfo['port']."/"
              also ne IP

              Der Code sieht wie folgt aus, also der unlink teil

              PHP-Code:
               function getPicFromServer ($rServerPath$lServerPath) {

                          
              $rServer['path'] = $rServerPath;
                          
              $lServer['path'] = $lServerPath;
                          
              $rServer['picDir'] = str_replace('pictures.php'''$rServer['path']);
                          
              $rServer['source'] = file_get_contents($rServer['path']);
                          
              $rServer['picUrls'] = explode("<br />"$rServer['source']);
                  
                for (
              $i 0$i count($rServer['picUrls'])-1$i++) {
                     echo 
              $rServer['picDir'].$rServer['picUrls'][$i].'<br>';
                     
              copy($rServer['picDir'].$rServer['picUrls'][$i], $lServerPath.$rServer['picUrls'][$i]);
                     
              unlink($rServer['picDir'].$rServer['picUrls'][$i]);
                 }

              was kann ich mach das das geht?

              Fehlermeldung:

              Code:
              Warning: unlink() [function.unlink]: http does not allow unlinking in /var/www/localhost/htdocs/MuBisA/alarm.php on line 20
              http://xx.xxx.xxx.xx:8753/fall_2010_8_9_18.43.17.jpg

              Kommentar


              • #8
                Edit: gelöscht
                Signatur:
                PHP-Code:
                $s '0048656c6c6f20576f726c64';
                while(
                $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

                Kommentar


                • #9
                  Sollte das nicht funktionieren=?
                  PHP-Code:
                   $url "http://".$deviceInfo['IP'].":".$deviceInfo['port']."/";
                             
                              
                  getPicFromServer ($url.'pictures.php''images/'.$search_id.'/'.$event_id[0].'/');
                              
                              
                  //Ordnername festlegen in dem die zu löschenden Files liegen
                      //überprüfen ob das Verzeichnis überhaupt existiert
                      
                  if (is_dir($url)) {
                      
                  //Ordner öffnen zur weiteren Bearbeitung
                      
                  if ($dh opendir($url)) {
                      
                  //Schleife, bis alle Files im Verzeichnis ausgelesen wurden
                      
                  while (($file readdir($dh)) !== false) {
                      
                  //Oft werden auch die Standardordner . und .. ausgelesen, diese sollen ignoriert werden
                      
                  if ($file!="." AND $file !="..") {
                      
                  //Files vom Server entfernen
                      
                  unlink("http://".$deviceInfo['IP'].":".$deviceInfo['port']."/".$file);
                      }
                      }
                      
                  //geöffnetes Verzeichnis wieder schließen
                      
                  closedir($dh);
                      }
                      } 

                  Kommentar


                  • #10
                    Zitat von Sp1n Beitrag anzeigen
                    Sollte das nicht funktionieren=?
                    PHP-Code:
                        //Files vom Server entfernen
                        
                    unlink("http://".$deviceInfo['IP'].":".$deviceInfo['port']."/".$file); 
                    Das wird nicht funktionieren. HTTP ist in dieser Beziehung eine Einbahnstrasse - du kannst keine Datei über HTTP löschen.

                    Lösche Daten, die auf DEINEM lokalen Server liegen. Verwende dazu Dateipfade, keine URL's.
                    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                    Kommentar


                    • #11
                      diese dateien liegen auf einem externen server auf den ich zugriff habe

                      Kommentar


                      • #12
                        Du vielleicht, aber unlink() nicht (...über http)

                        Kommentar


                        • #13
                          Dann muss der Zugriff darauf anders laufen, z.B. per FTP (das Protokoll kennt Lösch-Befehle...)
                          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                          Kommentar


                          • #14
                            Oder du erstellst auf dem externen Server ein Script, welches dort eine Datei löscht, deren Namen es als Parameter übergeben bekommen hat.

                            (Wenn man sowas macht, sollte man das aber natürlich sehr gut absichern. Hash von Dateiname und geheimem Salt zur Kontrolle mit übergeben, wenn möglich HTTPS nutzen, ...)

                            Kommentar


                            • #15
                              Zitat von ChrisB Beitrag anzeigen
                              Oder du erstellst auf dem externen Server ein Script, welches dort eine Datei löscht, deren Namen es als Parameter übergeben bekommen hat.

                              (Wenn man sowas macht, sollte man das aber natürlich sehr gut absichern. Hash von Dateiname und geheimem Salt zur Kontrolle mit übergeben, wenn möglich HTTPS nutzen, ...)
                              das geht wie?

                              Kommentar

                              Lädt...
                              X