File unbennen FTP

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • File unbennen FTP

    Hallo zusammen,

    ich möchte folgendes realisieren:

    Ich gebe zunächst in einem formular eine nummer ein (4 stellig), schicke dies ab und kann danach eine Datei hochladen (ca. 3 zugelassene Dateitypen). Jetzt würde ich gerne die Datei umbennen in die nummer, die zuvor eingegeben wurde, die entsprechende dateiendung sollte aber beibehalten werden.

    leider funktioniert das ganze nicht:


    Codeschnipsel:

    Quellcode

    1. $nummer= $_POST['nummer'];
    2. $new_file = $nummer."pdf";
    3. if (ftp_rename($conn, $file_name, $new_file)) {
    4. echo "$file_name erfolgreich in $new_file umbenannt\n";
    5. } else {
    6. echo "Ein Fehler trat beim Umbenennen von $file_name in $new_file auf\n";
    7. }


    die Datei wird nun immer in $_POST['nummer'].pdf umbenannt. Wie kann ich der Datei den richtigen Wert z.B. 1234.pdf mitgeben? am besten sollte auch noch der Dateityp entsprechend sein, da dies zur bei meinem Code ja auf pdf festgelegt ist....

    Wäre echt super, wenn mir jemand weiterhelfen könnte.

    Eine Unbenennung in einen vorgegebenen Dateiname z.B. "test.pdf" funktioniert wunderbar

    Grüße,
    sinus
  • Verstehe ich das richtig, dass der Dateiname "$_POST['nummer'].pdf" ist?
    Dann liegt der Fehler nicht in deinen Zeilen, sondern woanders.

    ich nehme an bei dir stehts so im Formular und die Variable wird nicht interpretiert.
    value="$_POST['nummer']"

    ansonsten würde ich übrigens empfehlen basename oder intval anzuwenden, damit du mit einem /etc/ in der Formulareingabe nicht in beliebige Verzeichnisse schreiben kannst.
  • hallo,

    jetzt habe ich es geschafft, dass die datei in die entsprechend einggebene nummer umbenannt wird.

    jedoch habe ich noch folgendes problem:

    ich möchte 3 dateiendungen zulassen: pdf, docx, zip.
    die dateiendung habe ich aber bei obigen codeschnipsel per hand eingetragen. wenn jetzt jemand ein zip hochläd, wird die datei in .pdf unbenannt. wie kann ich hier die richtige dateiendung mitgeben?

    außerdem verstehe ich nicht so genau, was mit dem basename oder intval gemeint ist. kannst du das vielleicht noch ein bisschen näher erläutern?
  • Ich hoff du meinst das so, dann hab ich dir geholfen xD

    Quellcode

    1. $nummer= $_POST['nummer'];
    2. $file_name = $_POST['file_name']; // Beispeil : 'test.zip'
    3. if(substr ( $file_name , -4 ) === '.pdf') { $new_file = $nummer.".pdf";}
    4. if(substr( $file_name,-5 ) === '.docx') { $new_file = $nummer.".docx";}
    5. if(substr( $file_name, -4 ) === '.zip') {$new_file = $nummer.".zip";}
    6. if (ftp_rename($conn, $file_name, $new_file)) {
    7. echo "$file_name erfolgreich in $new_file umbenannt\n";
    8. } else {
    9. echo "Ein Fehler trat beim Umbenennen von $file_name in $new_file auf\n";
    10. }
    Alles anzeigen
  • s1ckST4R schrieb:

    Ich hoff du meinst das so, dann hab ich dir geholfen xD

    Quellcode

    1. $nummer= $_POST['nummer'];
    2. $file_name = $_POST['file_name']; // Beispeil : 'test.zip'
    3. if(substr ( $file_name , -4 ) === '.pdf') { $new_file = $nummer.".pdf";}
    4. if(substr( $file_name,-5 ) === '.docx') { $new_file = $nummer.".docx";}
    5. if(substr( $file_name, -4 ) === '.zip') {$new_file = $nummer.".zip";}
    6. if (ftp_rename($conn, $file_name, $new_file)) {
    7. echo "$file_name erfolgreich in $new_file umbenannt\n";
    8. } else {
    9. echo "Ein Fehler trat beim Umbenennen von $file_name in $new_file auf\n";
    10. }
    Alles anzeigen


    ich würde hier lieber auf eine if/elseif/else Verzweigung oder einen switch setzen .. einfach aus Performacegründen