er det til download, eller til visning direkte i browser..?
hvis det er til download, så skulle denne gerne kunne virke Stream stm; stm = new FileStream(Server.MapPath("") + "//Files//" + Filnavn + "." + FilType, FileMode.Open); (Filtype kunne være fast csv hvis du ønsker, og det samme med filnavn } byte[] b = new byte[(int)stm.Length]; stm.Read(b, 0, b.Length); stm.Close(); Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachment; filename=\"" + FilNavn + "\""); Response.BinaryWrite(b);
Har lige prøvet med din løsning. den svare så tilbage med :
"Der opstod en Microsoft JScript-kørselsfejl: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. Common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server trace is enabled. Details: Error parsing near 'Time;UL1;UL2;UL3;UL1'."
'Time;UL1;UL2;UL3;UL1' er den første del af filene... Jeg har Ajax på siten. og denne del af koden ligge i en dynamisk oprette web.usercontrol..
hvad nu?
har haft prøvet at slå trace fra. men det hjælper heller ikke??
ja... som jeg skrev (og spurgte) om det var så en bruger blev sendt over til filen, for at skulle downloade den, eller om det var et forsøg i at prøve at læse filen...
Det er et system der samler data op fra nogle ekster måler. og bruger skal kunne læse file ned på sin HD, så han har mulighed for vidre behandlig af data.
Koden se sådan her ud nu Dim fsCurPDFFileStream As System.IO.FileStream Dim intPDFFileSize As Integer Dim bytaryFileBBuffer() As Byte ' Open a new stream to the file. fsCurPDFFileStream = New System.IO.FileStream(fullpath, System.IO.FileMode.Open) ' Retreive the amount of bytes in the file. intPDFFileSize = Convert.ToInt32(fsCurPDFFileStream.Length) ' Read the byte stream into the byte array, then clost the stream. ReDim bytaryFileBBuffer(intPDFFileSize) fsCurPDFFileStream.Read(bytaryFileBBuffer, 0, intPDFFileSize) fsCurPDFFileStream.Close() fsCurPDFFileStream = Nothing ' Output the byte array from/to this webpage. Response.ContentType = "text/comma-separated-values" Response.OutputStream.Write(bytaryFileBBuffer, 0, intPDFFileSize) Response.AddHeader("Content-Disposition", "attachment;filename=" & filename) Response.Flush() Response.Close()
Og koden ligger i Sendfil_Click sub, som er en Button_Click procedure.
filen bliver lavet lige før den sendes....
jeg få stadig fjelne med bla bla Details: Error parsing near 'Time;UL1;UL2;UL3;UL1'."
1) Bliver det rent faktisk en xls fil eller går du bare ud fra det fordi den bliver åbnet i excel. Der er ingen logisk grund til at serveren skulle omdøbe, eller konvertere filer du sender til browseren. Hvis den bliver lavet om, kan det eventuelt være et httpmodule eller httpfilter der gør noget (hvis det er på en server som andre også udvikler på)
2) Response.ContentType = "text/comma-separated-values" Response.Redirect("filnavn.csv") giver desuden ingen mening. Response.ContentType sætte contenttype på de nuværende request objekt. Response.Redirect sender svar (på det nuværende request) tilbage til browseren, og beder den sende et nyt request til den angivne sti.
3) "text/comma-separated-values" som contenttype er udgået, browsers understøtter det sikkert stadig, men bruge den nyere "text/csv" istedet
4) ville et direkt link til filen ikke virke lige så godt. Eller er der andre grunde til at ikke lave et. f.eks. at skjule din fil struktur eller undgå deep links?
5) nu er det her C#, men du kan sikkert oversætte det til VB Response.WriteFile(fullpath); Response.ContentType = "text/csv"; Response.AddHeader("Content-Disposition", "attachment;filename=" + filename) Response.End();
6) Ligger knappen som der bliver trykket på inde i et UpdatePanel skal du tilføje en PostbackTrigger til panelet med en reference til knappen (således at der bliver lavet et fuldt postback og ikke kun updatepanelet der bliver opdateret. Det javascript som håndterer updatepanelet vil jo selvfølgelig ikke kunne bruge den csv fil du sender til noget)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.