Beste Umsetzung - speichern von Dateien

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

  • Beste Umsetzung - speichern von Dateien

    Hi,

    ich hab das Problem das mein neu aufgesetzter Suse 10.2 Server beim speichern von Dateien mit PHP aus Dateinamen die Umlaute enthalten diese z. b. auch Leerzeichen als Unterstrich speichert und auch sonst der Dateinamen mit Umlauten anderst auf die Platte geschreiben wird als er ursprünglich heisst.
    IST Zustand:
    Ok, um das Problem zu umgehen schreibe ich den Dateinamen nun als vorher gernerierten Tokenstring (ohne umlaute) und vermerke mir den dazugehörigen Dateinamen in der Datenbank.
    Ist das die beste (!) und korrekte vorgehensweise auf nem Linux System ?

    Warum ich Nachfrage ist:
    Wenn ich nun so eine Datei zum Download anbeiten will (noch nicht ausprobiert) steuer ich ja über die Header wie das Ding heisst und ankommen soll (richtig?)

    Aber was mache ich, wenn ich eine JPG Grafik auf der Platte mit Dateinamen: sdfsd567f5sff7s6f78sdf68s7d liegen habe und diese aber anzeigen will ?

    Irgendwie hab ich das Gefühl, dass die Verhunzung des Dateinamens beim speichern wenn Umlaute drin sind nicht normal ist. Muss doch möglich sein eine datei zu speichern die da heisst "hallo ich bin eine Datei.txt".

  • #2
    Re: Beste Umsetzung - speichern von Dateien

    Original geschrieben von muschle66
    Muss doch möglich sein eine datei zu speichern die da heisst "hallo ich bin eine Datei.txt".
    ja klar, warum sollte das nicht möglich sein?

    dein deutsch ist ein bisschen schwer zu verstehen , aber ich schätze mal, du hast probleme damit, die dateinamen mit sonderzeichen per get zu übergeben - urlencode() bzw. rawurlencode() sollte dir dabei weiterhelfen.

    Kommentar


    • #3
      Es get nicht um Variablenübergabe.

      Wenn ich mit PHP eine Datei schreibe mit Filename "hallo ich bin eine Datei.txt" dann landet bei mir auf der Platte dasselbe nur das die Leerzeichen Unterstriche sind (ich konvertier da am Filename aber nichts mit php). Genauso auch wenn Umlaute enthalten sind. Ich hab derzeit noch keinen Plan an was das liegen könnte, vielleicht eine Linux Einstellung oder eine PHP Einstellung ?

      Kommentar


      • #4
        Original geschrieben von muschle66
        Wenn ich mit PHP eine Datei schreibe mit Filename "hallo ich bin eine Datei.txt" dann landet bei mir auf der Platte dasselbe nur das die Leerzeichen Unterstriche sind (ich konvertier da am Filename aber nichts mit php).
        wie beschreibst du denn die datei? code her, damit wir das nachvollziehen können.
        den dateinamen hast du statisch vorliegen?

        Original geschrieben von muschle66
        Es get nicht um Variablenübergabe.
        sicher?
        echo urlencode('hallo ich bin eine Datei.txt');
        ergibt bei mir z.b. :
        hallo+ich+bin+eine+Datei.txt

        glaube zu wissen, dass es da eine konfigurationseinstellung gibt, also dass bei dir anstelle der + die _ auftauchen.

        Kommentar


        • #5
          Das verhält sich alles mehr wie seltsam.

          Habe jetzt nur noch Probleme mit Umlauten. Aus Umlaute macht mir diese Routine:

          PHP-Code:
          $newdestinationfile=MAILDIR.$user_id.'/'.$yearshift.'/'.$token.'/'.$attachcounter;
              
          $newdestinationfile $newdestinationfile.'/'.$filename_attach;
              @
          rename ($filesource,$newdestinationfile); 
          im Dateinamen Unterstriche.
          Für mich stellt sich die Frage wie ich mit den Umlauten umgehen sollte. Die ganze Routine ist ein Script das eine POP3 Mailbox leert und ggf. attachments dazu abspeichert. Webmail sozusagen. Ich suche eine Lösung (falls es die gibt) wo ich nicht nach gut dünken den Original Attachment Filenamen ändern muss nur um die Anhänge auf Platte zu bekommen.
          Ich könnte natürlich hergehen und alle Umlaute aus dem Original Dateinamen ersetzen. Aber irgendwie ist diese Lösung ziemlich dirty ? Wäre also für Tipps wie man es noch andest machen könnte dankbar.

          Kommentar

          Lädt...
          X