Christian: Kann Dateien nicht downloaden

Hallo Forumaner!

Ich habe bei meiner Domain unterhalb des html-Verzeichnisses einen files-Ordner mit chmod0700 in das ich mit moveuploaded_file() Dateien hoch laden kann.
Ich habe mir jetzt im html-Ordner ein Verzeichniss "bilder" mit chmod0700 erstellt weil mir der Zugriff mit moveuploaded_file() auf Ordner mit chmod0755 verweigert wird.
Dort hin habe ich jetzt ein paar Bilder mit moveup... hoch geladen. Die bekamen dabei chmod0600.
Die Dateien, die ich mit FTP dort hin geladen habe, haben chmod0644.

Jetzt habe ich versucht, alle Dateien per FTP runter zu laden. Dabei wurde mir der Zugriff auf die per PHP hochgeladenen verweigert.

Wie kriege ich die runter geladen? Worin liegt mein Fehler?

Danke, Christian

  1. Hi,

    Wie kriege ich die runter geladen? Worin liegt mein Fehler?

    Ich vermute, du hast PHP als Modul. Somit gehören die hochgeladenen Dateien dem User, unter dem der Apache läuft. Somit hast du bei 0600 natürlich nichtmal das Leserecht.

    1. Hallo!

      Ich vermute, du hast PHP als Modul. Somit gehören die hochgeladenen Dateien dem User, unter dem der Apache läuft. Somit hast du bei 0600 natürlich nichtmal das Leserecht.

      Ich denk schon. Also müsste ich sie per Browser runter laden?
      Anders geht das nicht?

      Danke, Christian

      1. Hi,

        Ich denk schon. Also müsste ich sie per Browser runter laden?
        Anders geht das nicht?

        Du kannst als Rechte 0666 vergeben, oder den Upload mit den FTP-Funktionen von PHP realisieren. Im ersten Fall darf jeder Benutzer das File lesen und schreiben (Also auch dein FTP-Benutzer), im zweiten Fall bekommt dein File deinen FTP-Benutzer als Eigentümer, dann geht es auch mit 0600 als Recht.

        1. Hallo Manuel!

          Du kannst als Rechte 0666 vergeben

          Per PHP oder? Wie mach ich das, dass ich allen Dateien in einem Ordner die rechte zuweise? Mit chmod() ??

          Im ersten Fall darf jeder Benutzer das File lesen und schreiben (Also auch dein FTP-Benutzer)

          Das reicht mir ja zum runter laden. Wenn ich sie dann wieder hochladen sollte (per FTP) haben sie eh chmod0644 oder? Ich muss die wirklich nur auf wieder auf meinen Rechner ziehn. Ist also chmod() die Lösung?!

          Danke, Christian

          1. Hi,

            Per PHP oder?

            Das kann ich nicht sagen, das musst du selbst wissen, was du willst ;)

            Wie mach ich das, dass ich allen Dateien in einem Ordner die rechte zuweise? Mit chmod() ??

            Na zumindest mach ich das immer so.

            Das reicht mir ja zum runter laden. Wenn ich sie dann wieder hochladen sollte (per FTP) haben sie eh chmod0644 oder?

            Kommt auf die Einstellung des FTP-Servers an. Mit "umask" kann man dafür eine Voreistellung treffen. Lade doch einfach mal ein File per FTP hoch, dann siehst du ja, welche rechte die Datei hat. Normalerweise sollte es aber 0644 sein.

            Ich muss die wirklich nur auf wieder auf meinen Rechner ziehn. Ist also chmod() die Lösung?!

            Mir ist zwar immer noch nicht klar, was es bringt, ein Upload per PHP, ein Download per HTTP und wieder ein Upload per FTP, aber in deinem Fall wird wohl chmod die Lösung sein.

            1. Hallo Manuel!

              Mir ist zwar immer noch nicht klar, was es bringt, ein Upload per PHP, ein Download per HTTP und wieder ein Upload per FTP, aber in deinem Fall wird wohl chmod die Lösung sein.

              Es bringt etwas weil das Verzeichniss "umgezogen" ist.
              Ich habe Bilder hoch und hoch geladen und kriege sie nun nicht mehr runter. Beim hoch laden wurden sie umbenannt.

              Danke, Christian

              1. Hi Christian,

                Es bringt etwas weil das Verzeichniss "umgezogen" ist.

                Ist das Verzeichnis auf dem gleichen Server?
                Dann brauchst du die Dateien doch nur per PHP verschieben mit rename()
                Mit dir() und einer while-Schleife wird das ein 5-Zeiler.

                1. Hallo Manuel!

                  Ist das Verzeichnis auf dem gleichen Server?

                  Ja!

                  Dann brauchst du die Dateien doch nur per PHP verschieben mit rename()
                  Mit dir() und einer while-Schleife wird das ein 5-Zeiler.

                  Genau das hätte ich gesucht. Ich dachte es wär ein chmod() Problem.
                  Eine andere Möglichkeit wäre eine Schleife mit chmod() gewesen, per FTP runter laden, hoch laden, fertig.

                  Viel zu umständlich. Ich bin dank dir aber dann auch drauf gekommen!

                  Danke!!!

                  Christian