Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


File Download med Response.BinaryWrite

Postades av 2005-11-03 16:05:51 - David Hägg, i forum asp.net generellt, Tråden har 2 Kommentarer och lästs av 654 personer

Hej,

Laddar ner en kalenderfil till Outlook genom response.binarywrite, men kan inte få encodingen att visa svenska tecken inuti filen.

<code>
string FileSessionId = objCal.CreateICS(EventCalendar.SelectedDate);
string FilePath = Server.MapPath("/events/ics/" + FileSessionId + ".ics");

// Skicka kalenderfilen till besökaren
FileStream objFS = new FileStream(FilePath, FileMode.Open);
long FileSize = objFS.Length;
byte[] Buffer = new byte[(int)FileSize];
objFS.Read(Buffer, 0, (int)objFS.Length);
objFS.Close();

Response.ContentType = "text/plain";
Response.AddHeader("Content-Disposition", "filename=" + FileSessionId + ".ics");
Response.BinaryWrite(Buffer);
</code>

Kalenderfilen ser ut så här i ren text:
<code>
BEGIN:VCALENDAR
VERSION:1.0
BEGIN:VEVENT
DTSTART:20051102T230000Z
DTEND:20051103T200000Z
LOCATION;ENCODING=QUOTED-PRINTABLE:Sverige
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:Hej hej
SUMMARY;ENCODING=QUOTED-PRINTABLE:Här kommer ett event
TRIGGER:-PT15M
PRIORITY:3
END:VEVENT
END:VCALENDAR
</code>

Om man tittar i kalenderfilen ser man att det finns svenska tecken i "Här", men dessa visas som ä när man visar den i Outlook.

Någon som vet hur man sätter rätt encoding för detta?


Svara

Sv: File Download med Response.BinaryWrite

Postades av 2005-11-03 21:43:55 - Oskar Johansson

Något kul med encoding; hittade en tråd som kan vara intressant: http://www.dotnet247.com/247reference/msgs/43/217592.aspx


Svara

Sv:File Download med Response.BinaryWrite

Postades av 2005-11-04 11:32:55 - David Hägg

OK Cool Cat!

Lyckades fixa det. Problemet låg ju inte i hur jag skickade filen utan hur jag skapade den.

Funktionen för att skapa filen:
Nyckelraden är "TextWriter tw = new StreamWriter(FilePath, false, Encoding.Default);"

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// SKAPA EN KALENDERFIL OCH SKICKA TILL BESÖKAREN ///////////////////////////////////////////////
// Returnerar en sträng med det unika filnamnet
public string CreateICS(DateTime SelectedDate)
{
 
    string subject = "";
    string summary = "";
    string startDate = "";
    string startTime = "";
    string endTime = "";
    string location = "";
 
    // Hämta data
    DataSet objDS = DSGetEventByDate(SelectedDate.ToShortDateString().ToString());
    DataRowCollection objRow = objDS.Tables[0].Rows;
 
    if (objRow.Count != 0)
    {
        foreach (DataRow drRow in objRow)
        {
            subject = drRow["Header"].ToString();
            summary = drRow["Bodytext"].ToString();
            startDate = drRow["EventDate"].ToString();
            startTime = drRow["EventStart"].ToString();
            endTime = drRow["EventEnd"].ToString();
            location = drRow["EventLocation"].ToString();
        }
    }
     
 
    const string c_strTimeFormat = "yyyyMMdd\\THHmmss\\Z";
    string strStartTime = "";
    string strEndTime = "";
    string strTimeStamp = "";
    string strTempStartTime = "";
    string strTempEndTime = "";
    string vCalendarFile = "";
 
    // Definera VCalendar format
    const string VCAL_FILE =
    "BEGIN:VCALENDAR\n" +
    "VERSION:1.0\n" +
    "BEGIN:VEVENT\n" +
    "DTSTART{0}\n" +
    "DTEND{1}\n" +
    "LOCATION;ENCODING=QUOTED-PRINTABLE:{2}\n" +
    "DESCRIPTION;ENCODING=QUOTED-PRINTABLE:{3}\n" +
    "SUMMARY;ENCODING=QUOTED-PRINTABLE:{4}\n" +
    "TRIGGER:-PT15M\n" +
    "PRIORITY:3\n" +
    "END:VEVENT\n" +
    "END:VCALENDAR";
 
    // Formatera innehållet rätt
    DateTime dtmStartDate = DateTime.Parse(startDate.ToString());
    DateTime dtmStartTime = DateTime.Parse(startDate.Substring(0, 10) + " " + startTime.ToString());
    DateTime dtmEndTime = DateTime.Parse(startDate.Substring(0, 10) + " " + endTime.ToString());
    strTempStartTime = string.Format("{0} {1}", dtmStartDate.ToShortDateString(), dtmStartTime.ToLongTimeString());
    strTempEndTime = string.Format("{0} {1}", dtmStartDate.ToShortDateString(), dtmEndTime.ToLongTimeString());
    strTimeStamp = (DateTime.Parse(strTempStartTime)).ToUniversalTime().ToString(c_strTimeFormat);
    strStartTime = string.Format(":{0}", strTimeStamp);
    strEndTime = string.Format(":{0}", (DateTime.Parse(strTempEndTime)).ToUniversalTime().ToString(c_strTimeFormat));
 
    // Definera kalenderinnehållet
    vCalendarFile = String.Format(VCAL_FILE, strStartTime, strEndTime, location, summary, subject, strTimeStamp, "Text här");
 
    // Instansiera texstrean objektet
    string FilePath = Server.MapPath("/events/ics/" + Session.SessionID.ToString() + ".ics");
    TextWriter tw = new StreamWriter(FilePath, false, Encoding.Default);
 
    // Skriv innehållet till filen
    tw.WriteLine(vCalendarFile.ToString());
 
    // Stäng filen
    tw.Close();
 
    return Session.SessionID.ToString();
 
}


Och så här anropar jag funktionen:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Skicka kalenderfil till besökaren //////////////////////////////////////////////////
public void GetCalendarFile(Object sender, EventArgs e)
{
 
    CalendarClass objCal = new CalendarClass();
 
    string strStartDate;
    string strStartTime;
    string strEndTime;
    string strHeader;
    string strSummary;
    string strLocation;
    string strOrganizerMail;
 
    // Skapa kalenderfilen
    string FileSessionId = objCal.CreateICS(EventCalendar.SelectedDate);
    string FilePath = Server.MapPath("/events/ics/" + FileSessionId + ".ics");
 
    Response.Clear();
    Response.ContentType = "text/plain";
    Response.ContentEncoding = Encoding.UTF8;
    Response.AddHeader("Content-Disposition", "attachment; filename=" + FileSessionId + ".ics");
    Response.WriteFile(FilePath);
    Response.Flush();
    Response.Close();
 
    // Ta bort filen
    FileInfo objFI = new FileInfo(FilePath);
    objFI.Delete();
     
}


Svara

Nyligen

  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe
  • 20:22 Spel
  • 17:07 Snabb och trevlig webbplats utan l

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 123
27 958
271 737
2 311
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies
Expand
next previous
Close

Previous

0/0

Next