liljaMedlem sedan juli 20041 183 inlägg Jag har försökt med en massa olika alternativ men inget fungerar. Jag försöker returnera en fil som ligger sparad i en ms sql databas. Det enda som krånglar är filnamnet.
ProcessAttachmentIdentifier id = new ProcessAttachmentIdentifier(Request.QueryString["id"]);
ProcessAttachment attachment = new ProcessAttachment(this.InitializationObject, id);
//Response.Charset = "UTF-8";
//Response.ContentEncoding = Encoding.UTF8;// Encoding.GetEncoding("UTF-8");
//Response.Charset = "ISO-8859-1";
//Response.ContentEncoding = Encoding.GetEncoding("ISO-8859-1");
if(attachment.MimeType.Length > 0) {
Response.ContentType = attachment.MimeType;
}
Response.AddHeader("content-disposition","inline; filename=" + attachment.Title);
attachment.WriteTo(Response.OutputStream);
Response.Flush();
Sidan är skapad i Visual Studio och är "Western European Codepage 1252" men jag har också testat "Unicode (UTF-8)". Jag har testat olika charset och contentencoding som ni ser bortkommenterade ovan. Databasen är MS SQL och har "SQL_Latin1_General_CP1_CI_AS".
Det enda sidan returnerar är det från koden ovan.
Någon som har något nytt jag kan pröva? :)
JojoxxMedlem sedan juni 20004 308 inlägg Jag är ingen klippa på ASP.NET, men från andra språk kan jag gissa mig till att headern borde se ut så här;
Response.AddHeader("content-disposition","inline; filename=""" + Server.URLEncode(attachment.Title)+"""");
Alltså, filnamnet citat-avgränsat och i formatet Filnamn%20med%20mellanslag.
liljaMedlem sedan juli 20041 183 inlägg
Jojoxx skrev:
Jag är ingen klippa på ASP.NET, men från andra språk kan jag gissa mig till att headern borde se ut så här;
Response.AddHeader("content-disposition","inline; filename=""" + Server.URLEncode(attachment.Title)+"""");
Alltså, filnamnet citat-avgränsat och i formatet Filnamn%20med%20mellanslag.
Tack! Nästan rätt. Alla mellanslag blir plustecken. Känns ändå som att vi är något på spåren här :)
liljaMedlem sedan juli 20041 183 inlägg Jag testade i Firefox nu och då blir å, like med %c3%a5%2c
JojoxxMedlem sedan juni 20004 308 inlägg Kan hända att det fixas automatiskt i ASP.NET, prova att bara citat-avgränsa filnamnet. (Ta bort Server.URLEncode)
Response.AddHeader("content-disposition","inline; filename=""" + attachment.Title+"""");
johaseoMedlem sedan maj 2009250 inlägg Använd HttpUtility.UrlEncode i ASP.Net så får du åäö korrekt
johaseoMedlem sedan maj 2009250 inlägg och givetvis dess motpart HttpUtility.UrlDecode