mkdir()

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

  • mkdir()

    Hi!

    hab ein Problem mit der funktion mkdir()!
    ich will sie dazu verwenden, um bei jedem dateiupload einen ordner anzulegen, in den die uploads reinkommen...!

    ich suche nun irgendeine möglichkeit, die ordnernamen automatisch zu vergeben, namen sind eigentlich egal, sollten aber auch als variable zur verfügung stehen, um sie in ner db abzuspeichern.

    ich poste euch mal kurz meinen bisherigen code:

    PHP-Code:
    if ($Submit){
    mkdir("update/match",0777);         
    $uploaddir $_SERVER["DOCUMENT_ROOT"].'/upload/match/';
    $attachment=$_FILES['userfile']['name'];
    $attachmentlink="upload/".$_FILES['userfile']['name'];

    if (
    count($_FILES['userfile']['name'])>0)
        { 
            for(
    $i=0;$i<count($_FILES['userfile']['name']);$i++)
            { 

                  
    if (
    move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $uploaddir $_FILES['userfile']['name'][$i])) {

    } else {

       }
      }
     } 
    ich will also im ordner "upload" bei jedem upload einen neuen ordner mit beliebigem namen erstellen.

    PS: wie erreich ich dann, dass die hochgeladenen dateien auch in diesem ordner landen!?
    bisher landen sie nur unter "upload", trotz der angabe "$uploaddir = $_SERVER["DOCUMENT_ROOT"].'/upload/match/';"

    und noch eine frage: die ganzen file-felder im upload-formular haben den namen userfile[]. der wert von $attachment=$_FILES['userfile']['name'] ist jetzt immer "ARRAY". wie bekomm ich wieder den ursprünglichen dateinamen, um ihn in der db abspeichern zu können!?

    Vielen Dank schon für die Mühen!

    mfg

    karibikjoe

  • #2
    $_FILES['user_file']['name'][0]..$_FILES['user_file']['name'][Anzahl-1]

    warum denn für jeden upload ein eigener ordner?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      hab mir das mit den ordnern so gedacht, damit ein bereits existierender dateiname nicht von einer anderen gleichnamigen datei überschrieben werden kann!

      Oder gibt es eine einfachere methode!?
      hab mir das mit dem (if_exists) oder so ähnlich mal angesehen.
      wäre auch eine feine sache!:
      nur müsste ich dann, falls die datei schon existiert, die neue datei unter einem anderen namen speichern. ist das möglich!?

      wie würdest du es machen!?

      Kommentar


      • #4
        ich würd vorschlagen, dass du erst den datenbankeintrag in die datei machst, danach die id des eben angelegten datensatzes ausliest und die datei einfach als 4711 oder 548789 speicherst

        eindeutig is das dann auf jeden fall
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          du meinst erst den datensatz anlegen, dann die id des datensatzes auslesen und dann...........!?

          die id+dateiname als dateinamen verwenden!?

          wie muss das schematisch aussehen!?

          Kommentar


          • #6
            1. INSERT INTO
            2. $id=mysql_insert_id();
            3. move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $_SERVER['DOCUMENT_ROOT'].'/images/'.$id);
            so in etwa
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Re: mkdir()

              Original geschrieben von karibikjoe
              PHP-Code:
              mkdir("[B]update[/B]/match",0777);         
              $uploaddir $_SERVER["DOCUMENT_ROOT"].'/[B]upload[/B]/match/'

              Kommentar


              • #8
                hab ein problem mit

                $id=mysql_insert_id();

                hab im manual gelesen dass mysql_insert_id() direkt nach der Abfrage aufrufen werden muss, die einen Wert erzeugt hat!!

                hab $id=mysql_insert_id(); direkt hinter den insert-into-befehl geschrieben.

                er liefert mir aber nicht die ID!

                Kommentar


                • #9
                  ok, es funzt!

                  hab ne klammer falsch gesetzt!!

                  Kommentar


                  • #10
                    jetzt brauch ich noch eine variable, die mir den "richtigen" Dateinamen der upload-datei liefert.

                    $_FILES['userfile']['name']; liefert nur noch den wert ARRAY.

                    Ich brauch jedoch den ursprünglichen dateinamen, um in in der db zu speichern, und um die datei später aus einer html-tabelle öffnen zu können.

                    Wie komm ich wieder an den ursprünglichen Dateinamen!?!?!?

                    Kommentar


                    • #11
                      Original geschrieben von mrhappiness
                      $_FILES['user_file']['name'][0]..$_FILES['user_file']['name'][Anzahl-1]
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        hab jetzt mal folgendes gemacht:

                        PHP-Code:
                        $attachment=$_FILES['user_file']['name'][$i]..$_FILES['user_file']['name'][$i-1];
                        echo 
                        $attachment
                        der bricht beim ausführen der datei ab und bringt ein leeres bild!?

                        bin mir nicht sicher mit dem [$i] und [$i-1]!?!?

                        gehört wohl was anderes rein!!

                        Kommentar


                        • #13
                          damit ist gemeint:
                          PHP-Code:
                          for ($i=0$i<count($_FILES['userfile']['name']);$i++)
                            echo 
                          $_FILES['userfile']['name'][$i]; 
                          du hast es bei move_uploaded_file in deinem ersten beitrag doch auch geschafft oder?
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            du meinst in meinem vorletzten thread mit dem Thema "datei-upload"??

                            ja, die schleifenprogrammierung hab ich hinbekommen, die dateien werden alle upgeloaded!!


                            es müsste doch jetzt funktionieren wenn ich das so mach:
                            if (move_uploaded_file) { und jetzt hier update tabelle set attachment = $_FILES['userfile']['name'][$i] where id =$id;


                            dann sollte doch der dateiname in der datenbank auftauchen!!!

                            sorry, aber ich dreh mich gerade etwas im kreis!!

                            Kommentar


                            • #15
                              PHP-Code:
                              for($i=0;$i<count($_FILES['userfile']['name']);$i++)
                                if (
                              $_FILES['userfile']['error']==0)
                                {
                                   
                              $sql="INSERT INTO tabelle
                                         SET
                                            displayname='"
                              .$_FILES['userfile']['name'][$i]."',
                                            author='"
                              .$_POST['author']."'";
                                   
                              mysql_query($sql) or die(mysql_error());
                                   
                              $id=mysql_insert_id();
                                   
                              move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $_SERVER['DOCUMENT_ROOT'].'images/'.$i;
                                } 
                              Ich denke, also bin ich. - Einige sind trotzdem...

                              Kommentar

                              Lädt...
                              X