Dateinamen ändern in Bild_id

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

  • #16
    PHP-Code:
    <?
    $size = $bild_size; // Größe der Datei
      $name = $bild_name; // Der Originalname
      if(eregi("(jpg|gif)$",$name))
      {
        $ftype == "image/gif"
        $fname=$name; //Originalname wird in DB geschrieben
        if($size<32700 AND $size!=0)
        {
          include("../module/verb.inc");
          $Query  = "INSERT INTO User_Bilder ( UserId, BildName ) VALUES ( '$UserId', '$fname' )";
          $Result = mysql_query($Query)
          or die "&gt;&gt;&gt; MySQL-Error: ".mysql_errno()." -&gt; ".mysql_error()."<br>\n";
          copy($bild,"../mitglieder/".mysql_insert_id());
          echo "Die Datei erfolgreich hochgeladen.<br>";
          echo "Größe: ".$size." Byte<br>";
          echo "Name: ".$name."<br>";
          echo "MIME-Type: ".$type."<br>";
        }
        else
        {
          echo "Ihre Datei ist über 30 KB oder gleich 0";
        }
      }
      else
      {
        echo "Falsche Erweiterung: ".$name;
      }
    ?>
    so? (ungetestet)

    btw: verarbeitest du $ftype irgendwie weiter? (wenn ich ein jpg hochlade, is das übrigens nich vom typ image/gif )
    Zuletzt geändert von mrhappiness; 05.01.2003, 00:11.
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #17
      $ftype == "image/gif"
      {
      $fname = $id.gif // hier müsste jetzt der vorher irgendwie erstellte name hin denke ich
      }
      else
      {
      $fname = $id.jpg // hier müsste jetzt der vorher irgendwie erstellte name hin denke ich
      }

      warum ist das denn ausgeschnitten?müsste ich das nicht haben um den vorderen teil des bildes zu ändern?

      Kommentar


      • #18
        damit legst du (so ich es richtig verstanden habe) fest, wie die datei auf dem server heißen soll.

        wenn mein skript so läuft wie's oben steht (bzw. wie's gedacht is ) dann läuft es so ab:
        • user mit userid 3 lädt foobar.jpg hoch
        • du erzeugst eintrag in sql-datenbank
        • die automatisch erzeugte ID wird zurückgeliefert (mysql_inster_id())
        • und unter dieser id speicherst du das bild auf dem server


        vorher
        ID UserID Name
        1 1 bild.gif
        2 1 noch.gif
        3 2 ein.gif
        4 5 bild.gif

        nachher
        ID UserID Name
        1 1 bild.gif
        2 1 noch.gif
        3 2 ein.gif
        4 5 bild.gif
        5 3 foobar.jpg

        die datei foobar.jpg heißt jetzt auf deinem server 5.
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #19
          wie würde das denn mit der zufallszahl aussehen?

          Kommentar


          • #20
            ich werd das jetzt mal mi dem zurückliefern testen ob ich es hinbekomm, das mit MD5 würd ich selbst scheinlcih schaffen

            Kommentar


            • #21
              ich bekomm tausende von feler meldungen. werd das wohl mal neu schreiben müssen. ich weiß net wod er fehler liegt. Ich meld mich wenn ich was hab.

              Kommentar


              • #22
                HRHR *böselach* ich habs geschafft, und tatsächlich isses irgendwie ne dritte Möglichkeit geworden.
                Und hier der Code *trommelwirbel*

                TATDAAAAAAAAAAAAAAA:

                PHP-Code:
                $size $bild_size// Größe der Datei
                  
                $name $bild_name// Der Originalname
                  
                srand ((double)microtime()*1000000);
                  
                $randval rand(10000,99999);
                  if(
                eregi("(jpg|gif)",$name))
                  {
                    if(
                $ftype == "image/gif")
                    {
                      
                $name $randval.".gif"// hier müsste jetzt der vorher irgendwie erstellte name hin denke ich
                    
                }
                    else
                    {
                      
                $name $UserName.$randval.".jpg"// hier müsste jetzt der vorher irgendwie erstellte name hin denke ich
                    
                }
                    if(
                $size<32700 AND $size!=0)
                    {
                      
                copy($bild,"../mitglieder/$name");
                      echo 
                "Die Datei erfolgreich hochgeladen.<br>";
                      echo 
                "Größe: ".$size." Byte<br>";
                      echo 
                "Name: ".$name."<br>";
                      echo 
                "MIME-Type: ".$type."<br>";
                      
                #
                      
                $Query  "INSERT INTO User_Bilder ( UserId, BildName ) VALUES ( '$UserId', '$name')";
                      
                $Result mysql_query($Query)
                      or print 
                "&gt;&gt;&gt; MySQL-Error: ".mysql_errno()." -&gt; ".mysql_error()."<br>\n";
                      
                #
                    
                }
                    else
                    {
                      echo 
                "Ihre Datei ist über 30 KB oder gleich 0";
                    }
                  }
                  else
                  {
                    echo 
                "Falsche Erweiterung: ".$name;
                  } 
                Das ergebnis sieht dann zum Beispiel so aus:
                Imion51869

                Kommentar


                • #23
                  obwohl wenn ich jetzt so drüber nachdenk hätte es ja auch gereicht einfach den Usernamen davor zu pappen...*kopfklatsch*

                  Kommentar


                  • #24
                    dann klatsch aber richtig feste ...

                    was ist aber, wenn der user die gleiche datei zweimal hochlädt. dann hast du zwei einträge in der tabelle und das gleiche bild.

                    -> username_bildname.extension
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #25
                      wäre vielleicht besser, wenn du diese zeile
                      PHP-Code:
                      if(eregi("(jpg|gif)",$name)) 
                      änderst in
                      PHP-Code:
                      if(preg_match("/image/(gif|jpeg|x-jpeg|pjpeg|x-png|png)/"$bild_type)) 
                      so überprüfst du den mimetyp und ich kann wirklich nur bilder hochladen
                      Zuletzt geändert von mrhappiness; 06.01.2003, 21:22.
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #26
                        Wenn du das sagst, ...
                        obwohl ich die funktionsweise nich ganz raff.

                        darf ich die variable $bild_type wieder $name nennen?

                        Kommentar


                        • #27
                          in $bild_type der der MIME-typ der datei. in $name wohl der dateiname drin.
                          das sind zwei paar schuhe.
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #28
                            Jetzt liest dir deine antwort durch und erkläre mir ob du das aus meiner verstandenhast ob ich jetzt die vars austauschen kann, $name ganz wegfällt, oder ich das ergänzen muß. Den rest hab ich kapiert.

                            Kommentar


                            • #29
                              wenn du den MIME-typ UND den namen brauchst, solltest du ncihts weglassen...

                              oder verstehe ich dich wirklich nicht?
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar


                              • #30
                                also muß $name auch da rein?

                                Kommentar

                                Lädt...
                                X