String.zip (Dateiname) auf Korrekt prüfen
Nicole
- php
Hallo erst mal ;-),
normalerweise interessiert es mich nicht,
wie jemand eine Eingabe macht, denn ich ändere
es direkt so wie ich es nutze.( strtoupper, ucfirst,etc.)
Leider geht es diemal nicht, denn ich arbeite an
einem Downloadsystem, dass hier in Konflikt mit
Dateinamen kommen kann aufgrund
Gross/Kleinschreibung, Sonderzeichen,etc.
Das Problem ist, ich weiss nicht einmal was alles an
Zeichen möglich wäre, insbesondere wenn ich an andere
Länder/Tastaturen denke.
Mögliche fehlerhafte Zeichen gibts ja unzählige,
welche davon probleme auf einem Unix/Linux Server machen
könnten weiss ich nicht komplett, somit könnte ich nicht
einmal einzeln raussortieren.
Aber vielleicht gibt es ja eine Regexp die das lösst.
Will sagen die irgendeinene Zeichenkette in normale
Zeichen umwandelt, aber nur bei Bedarf, also wenn ein
ungültiges zeichen vorkommt, denn nur dann soll die rename
Funktion das korregieren und nicht bei allen Files.
(wäre zu krass bei tausenden von files ;-)
Beispiel (extrem ;-)fehlerhafte Datei:
I²³`'-ch?#bin°^ein~kom i sches*@zipfILE.zip
Weiss jemand Rat ?
Ich habe schon verschiedene Lösungen probiert,
aber immer finde ich fehlerhafte Zeichen die durchkommen.
Gruss Nikki
Hallo,
geht es dir darum den Upload zu kontrollieren?
Dann überprüfe doch mit Regulären Ausdrücken und gib ne Fehlermeldung aus, wenn andere Zeichen als [a-z] und [0-9] da sind.
Gruß Frank
Hallo Frank,
danke für deine Hilfe
geht es dir darum den Upload zu kontrollieren?
»»
Nein, nicht nur. Mein script durchsucht unter anderem
automatisch die Archive der Mitglieder und da diese
natürlich auch andere
Dann überprüfe doch mit Regulären Ausdrücken und gib ne Fehlermeldung aus, wenn andere Zeichen als [a-z] und [0-9] da sind.
Zeichen verwenden als diese (z.B. im harmlosesten Fall "_"),
komme ich mit Buchstaben und Zahlen alleine nicht aus.
Gruss Nikki
Hi,
also wenn ich Dateiuploads auf einem Server zulasse, dass verhänge ich sehr restriktive Namenskonventionen. Normalerweise erlaube ich dann nur Zeichen aus [a-z][A-Z][0-9][-_.]. Wenn das bei Deinem System nicht geht, könnte sich auch folgende Vorgehensweise bewähren: Du nimmst die Datei, speicherst den Namen der Datei z.B. in einer Datenbank und legst die Datei unter einem eindeutigen Namen (z.B. MD5-Prüfsumme bzw. Datensatz-ID) auf der Festplatte ab. Damit hast Du auf jeden Fall die Gewähr, dass das Dateisystem des Servers keine Probleme damit hat.
Nun kann man die Datei halt entweder nur über den kryptischen Namen bzw. einer ID herunterladen. Aber man könnte auch ein Skript schreiben, welches zumindest im HTTP-Header den Original-Namen einbaut. Wenn jemand die Datei dann downloaded und auf Platte speichern möchte, so wird ihm dann gleich der Originalname vorgeschlagen...
viele Grüße
Achim Schrepfer