ilch Forum » Allgemein » HTML, PHP, SQL,... » Datei upload und Umbennen

Geschlossen
  1. #1
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Ich suche ein Script mit dem ich eine Datei hochloaden kann und gleichzeitig umbennen kannz.B.

    Datei1.jpg loade ich hoch und heißt auf dem server dann 1.jpg also die Dateiendung soll bleiben nur der teil vorher soll bleiben. Und solche funktioenen was ist wenn 2 punkte im namen vorkommen brauche ich nicht.

    Danke im Voraus

    mfg
    SLJ
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    scaRFhogg Mitglied
    Registriert seit
    02.06.2003
    Beiträge
    750
    Beitragswertungen
    0 Beitragspunkte
    Die Funktion zum umbenennen heisst rename.
    Ich versteh nicht so ganz in was du die Datei umbenennen willst?

    \"also die Dateiendung soll bleiben nur der teil vorher soll bleiben.\"

    ??

    Die Dateiendung bekommst du z.B. mit
    $a = explode(\'.\', $dateiname);
    $endung = $a[count($a) - 1]; // der letzte Teil des Dateinamens, der duch einen Punkt ebgetrennt ist.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Ja soweit war ich auch, nur das mit dem umbennen hat nicht geklappt, aber vielicht habe ich das schlecht erklärt, also nochmal!

    Ich habe eine id für die Zeile und der will ich eine zip datei zuweißen also die datei heißt vorher wasweißich.zip und meine id ist gerade die 17 dann will ich das auf den server loaden und der soll die datei dann in 17.zip umbenennen und gleichzeitig in die mysql dateinbank eintragen zur id 17 und in ein feld wo dann zip steht so das ich die datei später unter diesem namen downloaden kann.

    Das iwrd für eine überarbeitung des Z-E | Download Modules

    Zu dem rename die genau funkton sieht doch wie folgt aus:
    int rename(string oldname, string newname)

    nur was habe ich davon ich blicke da mal voll nicht durch und als erklärung steht dann noch:
    Mit rename() kann man versuchen, eine Datei (oldname) umzubenennen. Der
    neue Name steht im Parameter newname.
    Wenn diese Funktion den Namen der Datei ändern konnte, gibt sie true zurück,
    sonst false.

    Aber das ist mir irgend wie etwas zu hoch.

    Höffe ich habe das jetzt besser erklärt.

    Danke im Voraus

    mfg
    SLJ


    Edit hier habe ich ein Beisprl vielicht kannst du mir das etwas logischer schrieben, Danke:

    if(rename(\"selfphp.htm\",\"selfphp.php\"))  echo \"Datei wurde umbenannt\";else  echo \"Datei konnte nicht umbenannt werden\";


    Zuletzt geändert von SLJ am 05.12.2004 - 15:30



    Zuletzt geändert von SLJ am 05.12.2004 - 15:32
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    scaRFhogg Mitglied
    Registriert seit
    02.06.2003
    Beiträge
    750
    Beitragswertungen
    0 Beitragspunkte
    Also ich gehe mal davon aus, dass du den alten Dateinamen in einer Variablen $alterdateiname hast.
    Die Dateiendung hast du wie oben beschrieben in die Variable $endung gespeichert.
    Die aktuelle id z.B. 17 steht in der Variablen $id.

    Dann benutzt du die rename Funktion so:
    
    if(rename ($alterdateiname, $id .  \'.\' . $endung))
    {
    // mysql code um die datei zu speichern z.B.
    mysql_query(\"INSERT INTO dl_table (id, file) VALUES($id, \'\".$id \'.\' . $endung . \"\')\";
    }
    else
    {
    echo \'es ist ein fehler beim umbenennen aufgetreten.\';
    }



    bool rename ( string oldname, string newname [, resource context])

    bool bedeutet, dass von der Funktion \"wahr\" oder \"falsch\" zurückgegeben wid. das kann man dann z.B. in einer \"if\" Bedingung benutzen, z.B.: \"Wenn Funktion erfolgreich ausgeführt wurde mache dies, sonst gebe Fehlermeldung aus.\"

    string bedeutet Zeichenkette, also Wörter oder Texte. Das was bei PHP in \" oder \' steht. Was in [] steht ist ein optionaler Parameter und kann weggelassen werden.
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Irgendwie habe ich das gefühl ich solte das PHP Coden aufgeben. zwinker Aber ich versuche es mal und melde mich wenn es ein fehle gibt. zunge

    mfg
    SLJ
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Also meine datei wird über die variable $file übertragen und ich habe das jetzt so gemacht funktioniert aber nicht was mache ich fasch?:

    $n1 = explode(\".\",$file);	
    		$n2 = $n1[ count($n1)-1 ];
    
    
    if(rename (\'.$n1[0].\', $id .  \'.\' . \'.$n2.\')) 
          {
    	echo \'es ist ein fehler beim umbenennen aufgetreten.\'; 
           }
        	else
          {
        	if(@copy($file, \'bild/\'.$file_name)) 
          {
         echo \'Datei  ( \'.$file_name.\' ) <font color=\"#FF0000\">nicht erfolgreich hochgeladen</font><br />\';    
    	  }
        	else
          {
         echo \'Datei  ( \'.$file_name.\' ) <font color=\"#00FF00\">erfolgreich hochgeladen</font><br />\';
         }


    Das mit der MySQL DB mach ich später erst da ich gerade noch kein zugriff auf die DB habe.

    Folgende meldung kommt:

    Warning: rename(.$n1[0].,..$n2.) [function.rename]: No such file or directory in C:\\Programme\\XAMPP\\xampp\\htdocs\\slj\\test.php on line 79
    Datei ( banner.jpg ) nicht erfolgreich hochgeladen


    P.s. frohen 2. Advent

    mfg
    SLJ





    Zuletzt geändert von SLJ am 05.12.2004 - 16:54
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Ok ich bin jetzt etwas weiter, er loadet jetzt eine datei hoch mit dem titel aber mit der endung.tmp und auch nicht in den ordner bild sondern dahin wo der script liegt der quellcode ist jetzt folgender:

    $file2 = $file;
    //$n2 = php;
    $test = \'4\';	
    
    
    $n1 = explode(\'.\', $file2);	
    $n2 = $n1[ count($n1) - 1];
    
    
    	if(rename ($file2,$test.\'.\'.$n2)) 
    {
    	@copy($test, \'bild/\'.$test_name);
    }
    	elseif( @copy($test, \'bild/\'.$test_name))
    {
    echo\'was ist\';
    }
    else
    {
    echo \'es ist ein fehler beim umbenennen aufgetreten.\';


    Hoffe mir kann einer Helfen.

    mfg
    SLJ
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Ok Danke habs mir ilchs hilfe hinbekommen, war wohl nur ein kleiner fehler drin. *schäm*

    mfg
    SLJ
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten