2 Fragen wegen Uploadscript

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

  • 2 Fragen wegen Uploadscript

    Hallo,
    ich hätte mal zwei Fragen zu meinem Uploadscript.

    1. Wie ist es möglich bestimmte Dateitypen zu sperren, also ich meine nicht Bilder sondern Dateien. Hier ist mein Code um nur Bilder zuzulassen, wie muss ich den ändern?
    PHP-Code:
    if ($type != "image/gif" && $type != "image/jpeg" && $type != "image/png" && $type != "image/bmp")
    $error[] = "Es dürfen nur *.gif / *.jpeg / *.jpg / *.png / *.bmp Bilder hochgeladen werden!"
    2. Wie kann ich via PHP Dateien vom Server löschen?

  • #2
    1. die abfrage erweitern (google mal nach "mime types").
    2. unlink()

    Kommentar


    • #3
      1. In etwa so, wie du es schon machst: bestimmte Datei-Typen sperren. Man könnte bspw. bestimmte Datei-Endungen nicht zulassen.

      2. Siehe unlink() im Manual.
      Nieder mit der Camel Case-Konvention

      Kommentar


      • #4
        Also ich hab es mal mit diesem Code versucht aber das klappt nicht, jetzt lässt er mir garkeine Datei mehr zu
        PHP-Code:
        if ($type != "application/zip" && $type != "application/rar" && $type != "application/ace")
        $error[] = "Es dürfen nur *.rar / *.zip / *.ace Dateien hochgeladen werden!"

        Kommentar


        • #5
          was ergibt denn in dem fall ein
          PHP-Code:
           print_r ($_FILES); 
          speziell das
          PHP-Code:
          $_FILES['name_des_input_feldes']['type'
          gruß
          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            @Kropff: Danke, es hat application/x-zip gefehlt.

            Kommentar


            • #7
              Den Mime-Typ checken ist im übrigen keine verlässliche Methode evtl. Schadcode vom Server fernzuhalten bzw. sicherzustellen, dass nur gewünschte Dateien auf den Server gelangen.

              Vielmehr bieten sich hier direkte Prüfungen. Bilder versuchen in eine GD-Instanz zu laden, Zip-Archive versuchen zu öffnen, innerhalb der Datei nach Schlüsselwörtern suchen. Auch kein 100%iger Schutz, aber immernoch besser, als sich auf fälschbare Angaben zu verlassen.
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                Danke, aber in dem Uploadbereich kommen sowieso nur bestimmte User

                Hätte aber noch eine Frage zu unlink(), weil bei mir kommt immer die Meldung: Konnte die Datei nicht löschen. Mach ich was falsch bei der Zusammensetzung der Variablen?
                PHP-Code:
                $download_url "../../downloads/";
                $download_datei $download_url.$ausgabe_downloadlink;

                if(@
                unlink($download_datei)) {
                  echo 
                "Die Datei $datei wurde gelöscht!";
                } else {
                  echo 
                "Konnte die Datei $datei nicht löschen!";

                Kommentar


                • #9
                  wie immer: @ raus, file_exists() rein,
                  und wieder wie immer:
                  - pfad checken
                  - rechte checken.

                  würde nur zu gern wissen, was in $download_datei drin steht.

                  Kommentar


                  • #10
                    details dazu gibt es hier

                    gruß
                    peter
                    Zuletzt geändert von Kropff; 01.02.2007, 21:14.
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      Original geschrieben von Kropff
                      details dazu gibt es hier

                      gruß
                      peter
                      in deiner adresse fehlt ein f

                      so long
                      ~TroX
                      Freedom is a state of mind. Not a state in which we live.

                      troxdev.ch | animefieber

                      Kommentar


                      • #12
                        in deiner adresse fehlt ein f
                        ist korrigiert. sch***ß nachname halt

                        peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #13
                          @Kropff: Ich glaub ich bin blind find da aber nicht.

                          Hier der aktuelle Code, funktionieren tuts immer noch nicht:
                          $ausgabe_downloadlink ist der Dateiname + Endung Bsp.: video02.rar
                          Die Rechte in dem Ordner sind auf 777 gesetzt.

                          Fehlermeldung lautet wie folgt:
                          Warning: unlink(../../downloads/): No such file or directory in /srv/www/web1/html/.../download_loeschen.php on line 38
                          PHP-Code:
                          $download_url "../../downloads/";
                          $download_datei $download_url.$ausgabe_downloadlink;

                          if(
                          unlink($download_datei)) { # Zeile 38
                            
                          echo "Die Datei $datei wurde gelöscht!";
                          } else {
                            echo 
                          "Konnte die Datei $datei nicht löschen!";

                          Kommentar


                          • #14
                            ein var_dump() fänd ich glaubwürdiger.
                            der pfad scheint immer noch falsch zu sein. absolute pfadangaben probiert?

                            Kommentar


                            • #15
                              Hab den direkten Pfad auch schon Probiert, hier der Text bei var_dump()
                              Warning: unlink(..direkterpfad../downloads/): No such file or directory in /srv/www/web1/html/../download_loeschen.php on line 38
                              bool(false)
                              Warning: unlink(..direkterpfad../downloads/): No such file or directory in /srv/www/web1/html/../download_loeschen.php on line 40
                              Konnte die Datei nicht löschen!
                              Hier mein Code:
                              PHP-Code:
                              $sql "SELECT Id, Downloadlink FROM Downloads WHERE (Id like '".$_GET["id"]."')";
                              $result mysql_query ($sql);
                              $data mysql_fetch_array ($result);
                              $ausgabe_downloadlink $data["Downloadlink"];

                              $download_url "..direkterpfad../downloads/";
                              $download_datei $download_url.$ausgabe_downloadlink;

                              var_dump(unlink($download_datei)); # Zeile 38

                              if(unlink($download_datei)) { # Zeile 40
                                
                              echo "Die Datei $datei wurde gelöscht!";
                              } else {
                                echo 
                              "Konnte die Datei $datei nicht löschen!";

                              Kommentar

                              Lädt...
                              X