Avatar billede kxh Nybegynder
11. januar 2006 - 10:21 Der er 10 kommentarer og
1 løsning

Download fil fra webform - response.redirect

Hej

jeg har lavet et stykke kode som genere en xls fil, jeg vil så gerne have at brugeren kan downloade, hvilket man kan gøre med
response.redirect(filename).... men
hvordan kan jeg undgå at man kan clicke på åben, idet den bare
åbner excel dokumentet i min browser, det var jo ikke meningen, hvis den skal noget skal den åbne excel på brugerens computer!

// Kim
Avatar billede dj_uncas Nybegynder
11. januar 2006 - 16:49 #1
Response.AppendHeader("Content-Disposition", "inline; filename=\"" + filename + "\");
Response.Redirect(filename);

burde kunne gøre det..
Avatar billede arne_v Ekspert
11. januar 2006 - 20:27 #2
Bliver alle HTTP headere inkl. Content-Disposition ikke ignoreret ved
en redirect ?
Avatar billede arne_v Ekspert
11. januar 2006 - 20:28 #3
umiddelbart vil jeg sige webserver og/eller browser konfiguration

ASP.NET siden kan så vidt jeg kan se ikke gøre noget
Avatar billede dj_uncas Nybegynder
11. januar 2006 - 20:34 #4
bum, bum. Jeg tænkte bare at hvis du først giver Response-objektet en property holder den den i hele cyklussen...
Avatar billede arne_v Ekspert
11. januar 2006 - 20:38 #5
hvilken cyklus

en redirect sender en status kode 302 og en location header med den nye URL
til browseren som så sender en ny request

respons er gone

principielt kan man redirecte til en helt anden web server
Avatar billede dj_uncas Nybegynder
11. januar 2006 - 20:45 #6
Du har selvfølgelig ret... Jeg var måske i nogle lidt forkerte tanker. Jeg var ude i at sætte Mime-type på aspx-siden og downloade den. Men spørgsmålet går jo ud på noget helt andet..
Avatar billede kxh Nybegynder
12. januar 2006 - 09:09 #7
Hej igen

Jeg må tilstå jeg ikke er blevet så meget klogere, hvilke mulighed har jeg for at
styre hvordan excel dokumentet bliver vist, hvis man vælger åben ?

// Kim
Avatar billede dj_uncas Nybegynder
12. januar 2006 - 10:25 #8
Et eksempel jeg havde liggende:

i din aspx-side:

public void DownloadFile(filename)
{
    Response.ContentType = "application/msword"; //Eller hvad det nu er
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);

    Response.WriteFile(fileName);
    Response.Flush();
}
Avatar billede dj_uncas Nybegynder
12. januar 2006 - 10:26 #9
filename skal så være en absolut sti som eks. c:\Inetpub\wwwroot\Files\MitDoc.doc
Avatar billede kxh Nybegynder
12. januar 2006 - 11:18 #10
hej dj uncas

Tak for hjælpen jeg har fået det til at virke nu, med følgende kode

Response.Clear();
Response.AppendHeader("Content-Disposition","attachment; filename=" + filename);
Response.TransmitFile(filename);
Response.Flush();
Response.Close();

Det er meget vigtigt at man har Clear og Close på response,eller virker download kun første gang.

Smid et svar så skal du få nogen points ;-)

// Kim
Avatar billede dj_uncas Nybegynder
12. januar 2006 - 11:27 #11
ja, jeg glemte vist Close()...
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester