Hallo,
ich schicke an meinen ASP.net basierten Webdienst eine Datei mit einem ä im Dateinamen per Fileupload, und dann erkennt er am Server den Dateinamen falsch und macht aus dem ä ein anderes Sonderzeichen.
Das hat vermutl. was mit Encodierung zu tun,... aber wie löse ich das Schlamassel?
Oder eroiere die Ursache.
Grüsse
Unsere Website
iPhone Programmierung | Android Programmierung
Hallo Ploetzi
Validiere doch vor dem senden den Dateinamen und überprüfe auf Umlaute. Dies kannst du dann ja durch etwas ersetzen (z.B Ä = AE).
Beste Grüsse
Diräkt
nja, bei einem fileupload kann ich das am client nicht machen,...ausserdem sollte das ja trotzdem möglich sein
Unsere Website
iPhone Programmierung | Android Programmierung
Hi,
zeig doch mal Dein Code. Mir ist bislang kein fehlerhafter Upload mit Umlauten vorgekommen.
Gruß
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
dazuzusagen ist, ich mache, das nicht mit asp.net textboxen sondern html...
Unsere Website
iPhone Programmierung | Android Programmierung
Hier ein relevanter Codeausschnitt
if(File.Exists(Server.MapPath("../App_Data/Karten/") + FileUpload1.PostedFile.FileName.Replace("ö","oe").Replace("Ö","Oe").Replace("Ö","ae").Replace("ä","Ae").Replace("ü","ue").Replace("Ü","Ue"))){
Label1.Text = "Datei existiert bereits";
}else{
string filepath = FileUpload1.PostedFile.FileName;
System.Diagnostics.Debug.WriteLine("Filename" + filepath);
System.Diagnostics.Debug.WriteLine("Filename" + filepath.Replace("ö","oe").Replace("Ö","Oe").Replace("Ö","ae").Replace("ä","Ae").Replace("ü","ue").Replace("Ü","Ue"));
if (FileUpload1.PostedFile.FileName.ToLower().EndsWith("jpeg") || FileUpload1.PostedFile.FileName.ToLower().EndsWith("jpg"))
{
System.Drawing.Image UploadedImage = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream);
if (UploadedImage == null)
{
Label1.Text = "Kein Bild";
System.IO.File.Delete(Server.MapPath("../App_Data/Karten/") + filepath);
}
Unsere Website
iPhone Programmierung | Android Programmierung
Guten Morgen,
ich bin zwar nicht wirklich mitten drin im klassischen ASP.NET aber für mich schaut das ziemlich nach einer Reise mit der Kirche ums Dorf aus.Die ganzen Pfad-Zusammensetzungen sehen auch nicht so sauber aus. Du solltest auf die Funktionen von System.IO
zum Beispiel Path.Combine()
zurückgreifen.
So wie ich das in Erinnerung hab, reicht es, wenn Du ein einfaches <input />-
Feld hast, das Du im CodeBehind über das id-Attribut
direkt ansprechen kannst.
Ein ähnliches Verhalten hab ich bei diesem Beispiel Simple File Upload with ASP.NET gefunden.
Vielleicht hilft es Dir weiter.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Habs gefunden, das encoding war kein UTF8.
Unsere Website
iPhone Programmierung | Android Programmierung