Takkeside til download

Tags:    asp.net

EDIT: Har netop løst dette problem og vil blot dele løsningen med jer.
P.S. Siden er ikke uploadet endnu så resultatet kan ikke ses endnu på min side desværre.

Der er tre sider:
DownloadCV.aspx
DownloadTak.aspx
DownloadStart.aspx


DownloadCV.aspx har radiobuttons til at vælge download eller åben og en download-knap. På denne knap har jeg følgende kode:
Fold kodeboks ind/udCSharp kode 


DownloadTak.aspx har en tekst om at jeg takker for man downloader mit cv og at den ønskede handling snart startes.
På dens pre_init har jeg:
Fold kodeboks ind/udCSharp kode 

Der bruges init for at lave dette så tidligt som muligt i processen. 5-tallet betyder at efter 5 sekunder vil den automatisk redirecte til den URL der er defineret - altså den sender den til DownloadStart.aspx med den "action" som der valgt på forrige side.

DownloadStart.aspx sættes den ønskede action igang:
Fold kodeboks ind/udCSharp kode 

Hvis der er valgt download så tilføjes attachment header og derved kommer en dialog i de fleste browsere, og ellers sendes filen "blot" til browseren som oftest åbner den.


---------------------------------------------------------------------------------------------------------------

Hejsa allesammen

Jeg har før set sider, hvor man kommer til en side med din download vil starte om lidt og der så står tak fordi du downloader blah blah blah.

Jeg vil gerne lave noget lignende på min side med min pdf-fil.
Mit successcenarie ville være at starte en download baseret på brugerens ønsker, hvorefter siden flyttes til en takkeside.
Men efter at have set lidt på sagen kan jeg se det ikke er så nemt endda (ihvertfald ikke for mig).

Mine ønsker er også at brugeren skal vælge om filen skal åbnes i browseren eller der skal komme den popup der siger gem/åben/annuller.
Jeg er klar over at forskellen er om der bruges
Fold kodeboks ind/udCSharp kode 


Jeg har fået den løst på 2 måder:
1 MÅDE:
ProfessionelProfil.aspx har en knap med download CV som gør følgende:
Fold kodeboks ind/udCSharp kode 


ThanksForDownloading.aspx
Der er placeret en statisk int som skal tælle om den er kommet igen af sig selv. Man kan ikke bruge isPostBack da dette ikke er brugerrespons og derfor ikke siger true.

Fold kodeboks ind/udCSharp kode 

Forløb:
PersonligProfil.aspx trykkes på DownloadKnap
Redirecter til ThanksForDownloading.aspx
Denne sætter en refresh efter 2 sekunder til sig selv, som sørger for at vise takke-siden, og så starter download som brugeren har bedt om.

Det underlige ved dette eksempel er at det virker ikke første gang, men når man får en retry-knap så virker det.


2 MÅDE:
ProfessionelProfil.aspx har en knap med download CV som gør følgende:
Fold kodeboks ind/udCSharp kode 

Thanks2.aspx
Page_Load
Fold kodeboks ind/udCSharp kode 

Problemet med denne er at der kan den ikke vises i andet end browseren - altså ingen popup.
Den åbner filen direkte i et nyt vindue, og efter man har lukket det kan man se takke siden.

Jeg håber det er forståeligt og der er nogle derude der kan hjælpe mig :(



Indlæg senest redigeret d. 22.08.2011 14:36 af Bruger #16651
t