copy()

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

  • copy()

    Ehm... ich probiere ganz einfach ne Datei zu kopiern:

    PHP-Code:
    // Bild erfolgreich gespeichert
    if (copy($slot['tmp_name'], "/home/desktopvision_de/www/images/" $neuer_name)) {
      
    // Temp-Datei löschen
      
    unlink($slot['tmp_name']);
                        
      
    // CHMOD korrigieren
      
    chmod("../images/" $neuer_name,0644);

      echo 
    "<p>Bild mit dem Namen {$slot['name']} erfolgreich gespeichert.</p>";
    }
    // Beim Speichern des Bildes trat ein Fehler auf
    else {
        echo 
    "<p>Beim Speichern des Bildes trat ein Fehler auf. Bitte kontaktieren Sie den Administrator.</p>";            

    Allerdings tritt jedes Mal ein Fehler auf. Error_Reporting hab ich auch schon auf E_ALL geschaltet aber da kommt keine Warnung oderso. $neuer_name wird vorher generiert. Ich hab ein paar Testausgaben gemacht:

    Code:
    neuer name: rhjdrhsrhdrh_210.jpg
    von: /tmp/nzHGBcrPYd
    nach: /home/desktopvision_de/www/images/rhjdrhsrhdrh_210.jpg
    
    Beim Speichern des Bildes trat ein Fehler auf. Bitte kontaktieren Sie den Administrator.
    Die Tmp-Datei existiert auch und die Rechte im Zielordner sind auch ok. Was mache ich falsch? Danke schonmal im Voraus!
    Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

  • #2
    Kommt der Fehler auch bei Verwendung von move_uploaded_file() ?
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Kannst du mal ein paar Zeilen mehr Code posten, bitte? Wie sehen die Rechte des Zielordners aus?
      Nieder mit der Camel Case-Konvention

      Kommentar


      • #4
        Ergibt ein echo $slot['tmp_name'] in etwa was du erwartest ?
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Mehr code: bringt denke ich nicht viel da die ganzen Prüfungen davor sich auf den Dateityp etc. beschränken.. dort kommt er auch durch. Ich kann move_uploaded_file nicht verwenden weil ich vorher mit einem Perl-CGI die Dateien hochlade damit der uploadstatus angezeigt werden kann. Daher existieren die $_POST-Variablen nicht. Ich dachte eigentlich dieses problem mit copy() und einem anschließenden unlink() zu umgehen aber die Fehlermeldung bleibt exakt die gleiche.

          Wenn noch mehr code gewünscht wird bitte nochmal sagen, ich wüsste nämlich nich was noch helfen kann.

          Danke euch!

          Edit: @jahlives.... ja, das ergibt: /tmp/nzHGBcrPYd - die Datei existiert auch.
          Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

          Kommentar


          • #6
            Ergibt ein echo $slot['tmp_name'] in etwa was du erwartest ?
            Edit: @jahlives.... ja, das ergibt: /tmp/nzHGBcrPYd - die Datei existiert auch.
            Das ist aber keine Datei sondern nur ein Pfad. Somit soll die copy-Fkt einen Pfad in ein File kopieren ?
            imho fehlt da noch der Dateiname

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Das ist ein Linux system. Der Pfad ist /tmp/ und die Datei heißt "nzHGBcrPYd" - ohne Endung oder sonstiges. Die heißt einfach so!
              Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

              Kommentar


              • #8
                Tja an Linux habe ich gar ned gedacht
                Aber wenn der source Pfad stimmt, dann kann eingentlich nur noch der Destination Pfad falsch sein und/oder die Rechte an diesem Verzeichnis sind falsch
                ggf schon probiert
                PHP-Code:
                if (copy($slot['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/home/desktopvision_de/www/images/" $neuer_name)) { 
                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  Hmm... $_SERVER['DOCUMENT_ROOT'] ist leider /home/desktopvision_de/www

                  bringt also nix. Ich weiß nichmehr was ich machen soll. Die rechte können unmöglich nicht ausreichend sein.. (0777)!!
                  Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                  Kommentar


                  • #10
                    Wie rufst du denn nach dem Upload und Perl-Script dann dein PHP-Script aus?

                    Hast du die Existenz der temp-Datei überprüft? (file_exists, is_readable)
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Hallöchen! Danke auchnoch für die Antwort von wahsaga. Weiß ich leider nicht genau da das perl-script nicht von mir ist. Ich habe jetzt herausgefunden woran das liegt.

                      Ich habe (das PHP Script hat) offensichtlich keine Rechte die Datei aus dem tmp-Ordner zu lesen. Wieso oder Warum hab ich keine Ahnung. Die Rechte für den CHMOD hat das Script in dem Order auch nicht. Weiß jemand wie ich das nun umgehen kann?
                      Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                      Kommentar


                      • #12
                        Keiner ne idee?
                        Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                        Kommentar

                        Lädt...
                        X