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 652 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);"

        // 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:
    // 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

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

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 569 607
27 953
271 705
582
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