Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] move_uploaded_file - Problem

Einklappen

Neue Werbung 2019

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

  • [Erledigt] move_uploaded_file - Problem

    Hi,
    bin gerade am zusammenstellen eines Fotouploads mit mehreren Bildern, also Formularfeldern. Problem ist, dass die Dateien mit move_uploaded_file entweder:
    nicht kopiert werden
    oder:
    die Berechtigungen der kopierten Dateien nicht passen (600 auf wwwrun) und dann natürlich via FTP nicht mehr änderbar sind (löschen und umbenennen geht aber lustigerweise)

    In beiden Fällen wird false zurückgegeben (ohne sonstige Warnung/Fehlermeldung) - und nach welchem Prinzip ein Bild kopiert wird oder nicht ist mir schleierhaft, scheint zufällig zu sein, meistens wird aber nichts kopiert..

    Code - Teil in welchem $_Files verändert wird:

    PHP-Code:
          for($zy 1$zy <= $bilduploadfelder$zy++)  //Alle Bildauswahlfelder durchchecken
          
    {            
                     if(!(empty(
    $_FILES['Anhang'.$zy]['name'])))  //Überprüfen, ob überhaupt ein Bild mitgeschickt wird
                     
    {
                           if (
    $dateida == false
                       {
                          
    $anmerk .= "Folgende Datei(en) wurde(n) hinzugefügt: \n";
                      }      
                     
    $dateida True;
                     
                   
    $pattern1="/\./";
                   
    $pattern2="/-/";
                   
    $replace2="_";
                   
    $datum_ohne=preg_replace($pattern1,''$datum);
                   
    $datum_ohne=preg_replace($pattern2,$replace2$datum_ohne);

                   
    $_FILES['Anhang'.$zy]['name'] = $datum_ohne."_".$nachname."_".$_FILES['Anhang'.$zy]['name'];
                   
                   
    $anmerk .= $_FILES['Anhang'.$zy]['name']."\n";
                         
                   }
              } 
    Codeteil, welcher die Datei kopieren sollte:
    PHP-Code:
       for($zy 1$zy <= $bilduploadfelder$zy++)  //Alle Bildauswahlfelder durchchecken
          
    {          
              
    $aktdatei $_FILES['Anhang'.$zy]['name'];
              if (
    $aktdatei != ""){
                echo 
    $zy."<br>";
                echo 
    "$upverzeichnis/$aktdatei<br>";
                if (
    move_uploaded_file($_FILES['Anhang'.$zy]['name'],"$upverzeichnis/$aktdatei"))
                  {
              echo 
    "halo";
                  } 
                  else {
                  echo 
    "0AHHRG<br>";
                    } 
              }
          } 
    $upverzeichnis passt, und die vielen echo sind um zu schauen ob alles übergeben wurde.

    Weiß vielleicht jemand wo der Hund begraben liegt?
    Danke!

  • #2
    Nun, ich weiß nicht ob dir das weiter hilft, oder nicht, du kannst die chmod mit php verändern. Sry, wenn das grad voll net hier rein passt, wer postet aber denn auch schon so n Thema abends viertel 1?

    Kommentar


    • #3
      Bist du dir sicher, dass "$upverzeichnis/$aktdatei" funktionert??
      Vielleicht solltest du das mal in
      $upverzeichnis."/".$aktdatei ändern...

      Kommentar


      • #4
        Jemand, der die letzten Stunden nur mit dem *§$/!* Abschnitt verbracht hat

        Und chmod kann ich m.W. ja vor dem move nicht anwenden.

        Kommentar


        • #5
          @dex ->" Funktioniert" beides, hald mit dem gleichen Endproblem

          Kommentar


          • #6
            Du möchstest aber schon einen simplen Bilduploader ?!
            Wo du einfach mehrere Bilder von deiner Festplatte auf den FTP kopierst ?!

            Kommentar


            • #7
              Einen Bilduploader in Kontext mit einem Haufen anderer Sachen wie mysql und email, sprich es werden Eingaben in eine Datenbank überspielt und Dateien am Server abgelegt bzw. per Mail verschickt.
              Funktioniert alles, bis auf das Ablegen bzw. verschieben.
              Nachtrag - das 600 auf wwwrun ist mittlerweile klar, ändert aber an der Problematik leider nichts

              Kommentar


              • #8
                Wenn die Datei hochgeladen wurde wird sie in einem temporären Ordner zwischen gespeichert und bekommt ebenfalls einen temporären Namen der in 'tmp_name' steht! Und diese Datei musst du dann kopieren!

                PHP-Code:
                <?php
                move_uploaded_file
                ($_FILES['Anhang'.$zy]['tmp_name'], ...);

                Kommentar


                • #9
                  @Flor1an - Danke, genau das war es.
                  Und jetzt ist mir auch klar warum es ab und zu funktioniert hat -> hatte es vorher immer wieder so (tmp_name), da kam aber immer die Fehlermeldung, dass er die Datei nicht öffnen kann - ich hab allerdings übersehen, dass die Fehlermeldung aus einer anderen inkludierten php-Datei und folgender Zeile stammt:

                  PHP-Code:
                      $Dateiinhalt fread(fopen($_FILES['Anhang'.$zy]['tmp_name'], "r"), $_FILES['Anhang'.$zy]['size']); 
                  Ist natürlich klar, weil was ich vorher mit move_uploaden_file verschoben hab, kann ich nicht nachher auslesen

                  Danke!

                  Kommentar

                  Lädt...
                  X