Umlaut-Problem bei Datei-Upload

Diskussion von Ideen oder Anregungen zu ConPresso und zur Community
Antworten
Lars

Umlaut-Problem bei Datei-Upload

Beitrag von Lars »

Hallo,

wenn ich über den Datei-Upload Dateien hochladen, die Umlaute (z.B. ä,ö,ü,ß) enthalten, kommt es zu Problemen beim Aufrufen der Dateien. Manche Browser wie der Internet Explorer können diese dann nicht aufrufen und geben eine Meldung, dass sie die Datei angeblich nicht finden konnten (der Browser sagt dies, nicht der Webserver). Mit Mozilla z.B. funktioniert es allerdings. Man kann dem Internet Explorer aber keinen Vorwurf machen, denn 8-Bit-Zeichen sind in URLs standardmäßig nicht erlaubt. Als Problemlösung würde ich vorschlagen, dass Conpresso Dateinamen nach dem Upload überprüft und Umlaute ersetzt. Z.B. ß durch ss oder %DF.

Lars
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 01:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Re: Umlaut-Problem bei Datei-Upload

Beitrag von balu »

Hi Lars,

es gab in ConPresso schon eine Funktion, die Leerzeichen aus den Dateinamen entfernt. Ich habe diese heute Morgen noch so angepasst, dass nur "a-z", "A-Z", "0-9", "-", "." und "_" erlaubt sind. Alle anderen "Sonderzeichen" werden durch einen "_" ersetzt.

Alles andere macht weniger Sinn, weil wir nicht nur an deutsche Dateinamen denken muessen - und die Tabelle fuer Ersetzungen (wie ß->ss) wuerde ziemlich lang werden :)

Balu
Bartels.Schöne
ConPresso Support & Development
Karl

Re: Umlaut-Problem bei Datei-Upload

Beitrag von Karl »

Hallo balu

welche Funktion, in welcher Datei?
Bitte Quelltext posten dann kann jeder die Änderung sofort übernehmen.

Danke!
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 01:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Re: Umlaut-Problem bei Datei-Upload

Beitrag von balu »

Hi Karl,

in der Datei _includesite/i_file_upload.php wurde das folgende Teilstueck geaendert (wichtig ist die letzte Zeile):

// upload ok
$path = CPO_BASEDIR.'_data/';

// modify filename to exclude characters that are not a-z A-Z 0-9 _ or .
$filename = $_FILES['uppedFiles']['name'][$i];
$filename = preg_replace('/[^a-z0-9_\.-]/i', '_', $filename);

Balu
Bartels.Schöne
ConPresso Support & Development
Antworten